[OrbStack 対応版] グローバル環境を可能な限り汚染せずに Markdown から組版の PDF を生成
本稿は 2024 年 5 月に開催される 技術書典 16 と 技術書同人誌博覧会 10 にて無料で配布していた ゆめみ大技林 '24 に寄稿している記事のウェブ版です。
はじめに
本稿はゆめみ大技林 '23 の続きになります。組版の PDF を生成するためには Vivliostyle というツールを使用していますが、詳細に関してはゆめみ大技林 '23 をご覧ください。
Docker を OrbStack で動かす
最近ゆめみでは Docker のローカルマシン上ので実行が Docker Desktop から OrbStack を推奨するように変わりました。ゆめみ大技林 '23 では Docker Desktop の代わりに colima を使用していたので影響はないのですが、せっかくなので OrbStack を代わりに使えるのかを試してみました。
動作確認環境
- OS: macOS Sonoma 14.1.2(23B92)
- CPU: Apple M2 Pro
- Docker Desktop 4.29.0(145265)
- OrbStack 1.5.1(16857)
OrbStack とは
OrbStack は、Docker コンテナと Linux マシンを macOS 上で簡単に、軽快に、そして高速に動作させるためのソフトウェアです。このソフトウェアは、Docker Desktop や Windows Subsystem for Linux(WSL)の代替として開発され、使用するリソースは少なく、セットアップが簡単でパフォーマンスに優れています。また、Apple Silicon を使用しているユーザーにとっても最適化されており、インテル CPU 用のイメージを Rosetta を通じて効率的に実行できます by ChatGPT。
OrbStack をインストール
brew でインストールします。公式サイトからダウンロードも可能です。
$ brew install orbstack
OrbStack を起動
インストールした OrbStack.app
を起動します。
起動後に $ docker version
を実行すると Client の Context が orbstack
に変わり、Server も Docker Engine - Community
に変わっていることが確認できます。
$ docker version
Client:
Version: 25.0.5
API version: 1.44
Go version: go1.21.8
Git commit: 5dc9bcc
Built: Tue Mar 19 15:02:31 2024
OS/Arch: darwin/arm64
Context: orbstack
Server: Docker Engine - Community
Engine:
Version: 25.0.5
API version: 1.44 (minimum version 1.24)
Go version: go1.21.8
Git commit: e63daec
Built: Tue Mar 19 15:05:27 2024
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: v1.7.13
GitCommit: 7c3aca7a610df76212171d200ca3811ff6096eb8
runc:
Version: 1.1.12
GitCommit: 51d5e94601ceffbbd85688df1c928ecccbfa4685
docker-init:
Version: 0.19.0
GitCommit: de40ad0
OrbStack.app
を起動する代わりに、コマンドラインでも各種操作は可能です。
OrbStack の開始
$ orbctl start
OrbStack のステータスを確認
$ orbctl status
Running
OrbStack の停止
$ orbctl stop
colima を OrbStack に変更
ゆめみ大技林 '23 で紹介していた Makefile の $ colima start
を $ orbctl start
に変更します。
git diff Makefile
diff --git a/Makefile b/Makefile
index 5777a22..ce3acef 100644
--- a/Makefile
+++ b/Makefile
@@ -123,10 +123,10 @@ install_colima:
brew install colima; \
fi
-.PHONY: start_colima
-start_colima:
- @if [ $$(colima status 2>&1 | grep -c "not running") -eq 1 ]; then \
- colima start; \
+.PHONY: start_orbstack
+start_orbstack:
+ @if [ $$(orbctl status 2>&1 | grep -c "Stopped") -eq 1 ]; then \
+ orbctl start; \
fi
.PHONY: prepare_docker
@@ -135,4 +135,4 @@ prepare_docker: \
install_docker \
install_docker-compose \
install_colima \
- start_colima
+ start_orbstack
PDF の生成
$ make run
を行うと OrbStack 上で Docker が動き、colima と変わらず PDF が生成できることを確認できます。
あとがき
思ったよりもつまずくところなく colima を OrbStack に差し替えることができて拍子抜けしました。OrbStack は Docker Desktop と同様に商用利用は有料なため金額的な話では colima の方が利用しやすいですが、選択肢が増えるのは良いことです。引き続きいろいろな方法を試していきたいです。
Discussion