📖

[OrbStack 対応版] グローバル環境を可能な限り汚染せずに Markdown から組版の PDF を生成

2024/05/12に公開

本稿は 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