Docker Hub
Github (syuchan1005/osx-kvm)

はじめに

CIでiOS Appビルドするためだけにmac起動してたり,XamarinでStoryboardいじるためだけにmac起動しているのが嫌になったのでdocker上で動かせばいいじゃないと思った次第

インストールのISOを作るためにmacは必要です。悪しからず

構築

とりあえずKVM上でmacOSを動かす試みをしているOSX-KVM - Githubを利用する。
READMEの手順に従うとaptを使うしかないのでdockerのベースイメージはubuntu:bionicを利用する。

本当はalpine linuxとかで小さくしたいけどlibguestfsとかもろもろ入れるのめんどくさい(殴

上記踏まえDockerfileを記述する

FROM ubuntu:bionic

MAINTAINER syuchan1005 <syuchan.dev@gmail.com>

ENV DEBIAN_FRONTEND=noninteractive
ENV QEMU_AUDIO_DRV=none

# Install Packages and Create HDD image
RUN apt-get update && apt-get install -y \
    sudo git vim \
    qemu qemu-kvm qemu-utils \
    libguestfs-tools linux-image-generic uml-utilities \
    virt-manager libvirt-bin bridge-utils \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && git clone https://github.com/kholia/OSX-KVM.git

WORKDIR /OSX-KVM

# Create Bootable ISO
RUN git checkout -b test ded4522d17692b7d8d596f8ae3bba8f1bfaae26a \
    && rm Clover.qcow2 \
    && cd HighSierra \
    && ./clover-image.sh --iso Clover-v2.4k-4380-X64.iso \
        --cfg clover/config.plist.stripped.qemu \
        --img '../Clover.qcow2'

COPY start.sh /OSX-KVM
EXPOSE 5900
VOLUME /data

CMD ["./start.sh"]

Dockerfile

ちなみにすでにDocker Hubにあげてあります. Docker Hub - (syuchan1005/osx-kvm)

コンテナの構築

今回はすでに構築済みのイメージDocker Hub - (syuchan1005/osx-kvm)を利用する
ここ(OSX-KVM)を参考にHighSierraのインストールISOを作成し,ファイルを配置する(今回は/macOSに保存したとする)

docker run -d --name macOS --device /dev/kvm:/dev/kvm -p 5900:5900 \
-v /macOS:/data syuchan1005/osx-kvm

を実行しポート5900に対してVNCを接続する

言語選択後, Terminalを開き

diskutil list # 128GBぐらいのdiskを確認する
diskutil eraseDisk JHFS+ macOS disk0 # 確認したdiskに変更すること

を実行後,通常通りインストールすることでmacOSを利用できるようになる。

おわりに

予想以上に書くことがなかった。
快適なmac生活を!