Edited at

Docker上でmacOS(HighSierra, Mojave)が動く夢を見た

More than 1 year has passed since last update.

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を利用する。


2018/08/30追記

Alpine linux化しました。 イメージサイズが1.6GBから25MBになりました。(gzip時


上記踏まえDockerfileを記述する

FROM alpine:edge

MAINTAINER syuchan1005 <syuchan.dev@gmail.com>

ENV QEMU_AUDIO_DRV=none \
CORE=2 \
MEMORY=3G \
KEYBOARD=en-us \
CLOVER=1 \
INSTALLER=1

EXPOSE 5900
VOLUME /data

COPY start.sh /OSX/

RUN chmod 775 /OSX/start.sh \
&& apk add --no-cache git qemu-system-x86_64 qemu-img \
&& cd / && git clone https://github.com/kholia/OSX-KVM.git && cd /OSX-KVM \
&& git checkout -b test cfd120dd3092fb38a89544785b2a97bc93668b44 \
&& cp /OSX-KVM/OVMF_CODE.fd /OSX-KVM/OVMF_VARS-1024x768.fd /OSX-KVM/Mojave/Clover.qcow2 /OSX-KVM/boot-macOS-Mojave.sh /OSX \
&& cd /OSX && rm -rf /OSX-KVM && apk del --purge git

WORKDIR /OSX

ENTRYPOINT ["./start.sh"]

Dockerfile

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


コンテナの構築

今回はすでに構築済みのイメージDocker Hub - (syuchan1005/osx-kvm)を利用する

ここ(OSX-KVM)を参考にHighSierraのインストールISOを作成し,ファイルを配置する(今回は/macOSに保存したとする)

また、ファイル名はmacOS.isoでなければならない。

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生活を!