ローカル開発用Docker環境をDocker DesktopからOrbstackに変えてみた【1】
ということで、まずはOrbstockのインストール。
いやね、マジでDockerって屁が出るほど楽なのねwww
まあ、Linuxをコマンドラインでガシガシいじらないといけなかったのは、サーバーに対する理解を深めるにはとても役立ったのでそれはそれで良し。
Orbstockのインストール
さて、ちゃちゃっとやってしまおう。
GUIでインストール
これは普通にサイトにアクセスしてダウンロードしてきてdmgファイルからインスコする。
Orbstock 公式サイト
何故か私のMBPではChromeが「未確認のダウンロードをブロックしました」と言ってdmgファイルをダウンロードしてきてくれない。CPUの世代など幾つかの要因が考えられるらしいが、面倒なのでHomebrewで試してみる。
Homebrewでインストール
$ brew install --cask orbstack
==> Caveats
Open the OrbStack app to finish setup.
==> Downloading https://raw.githubusercontent.com/Homebrew/homebrew-cask/4f00af9
######################################################################### 100.0%
==> Downloading https://cdn-updates.orbstack.dev/amd64/OrbStack_v2.0.1_19784_amd
######################################################################### 100.0%
==> Installing Cask orbstack
==> Moving App 'OrbStack.app' to '/Applications/OrbStack.app'
==> Linking Bash Completion 'orbctl.bash' to '/usr/local/etc/bash_completion.d/o
==> Linking Fish Completion 'orbctl.fish' to '/usr/local/share/fish/vendor_compl
==> Linking Zsh Completion '_orb' to '/usr/local/share/zsh/site-functions/_orb'
==> Linking Zsh Completion '_orbctl' to '/usr/local/share/zsh/site-functions/_or
==> Linking Binary 'orbctl' to '/usr/local/bin/orbctl'
==> Linking Binary 'orb' to '/usr/local/bin/orb'
🍺 orbstack was successfully installed!
==> No outdated dependents to upgrade!
~ $ which orb
/usr/local/bin/orb
## バージョンは以下
$ orb version
Version: 2.0.1 (2000100)
Commit: 7dd65a773684826acae235283956831253870984 (v2.0.1)
$ docker --version
Docker version 28.3.3, build 980b856
Orbstockを起動!
Nextをクリック
Dockerを選択すると
分かりやすそう。
まずはこれでOrbstock側の準備は一旦完了。
docker-compose-lampのクローン
作業ディレクトリを ~/WORK として、docker-compose-lampをクローンする。
$ mkdir ~/WORK
$ cd ~/WORK
$ git clone https://github.com/sprintcube/docker-compose-lamp.git
$ cd docker-compose-lamp
docker-compose-lamp $ ls -la
total 80
drwxr-xr-x 16 yngdrsk staff 512 9 18 10:37 .
drwxr-xr-x 3 yngdrsk staff 96 9 18 10:37 ..
drwxr-xr-x 12 yngdrsk staff 384 9 18 10:37 .git
drwxr-xr-x 3 yngdrsk staff 96 9 18 10:37 .github
-rw-r--r-- 1 yngdrsk staff 70 9 18 10:37 .gitignore
drwxr-xr-x 19 yngdrsk staff 608 9 18 10:37 bin
drwxr-xr-x 5 yngdrsk staff 160 9 18 10:37 config
drwxr-xr-x 4 yngdrsk staff 128 9 18 10:37 data
-rw-r--r-- 1 yngdrsk staff 5247 9 18 10:37 dev_build_container.sh
-rw-r--r-- 1 yngdrsk staff 2510 9 18 10:37 docker-compose.yml
-rw-r--r-- 1 yngdrsk staff 1125 9 18 10:37 LICENSE
drwxr-xr-x 5 yngdrsk staff 160 9 18 10:37 logs
-rw-r--r-- 1 yngdrsk staff 10589 9 18 10:37 README.md
-rw-r--r-- 1 yngdrsk staff 1861 9 18 10:37 sample.env
-rw-r--r-- 1 yngdrsk staff 83 9 18 10:37 todo.md
drwxr-xr-x 7 yngdrsk staff 224 9 18 10:37 www
Gitまわり
# 自分のgithubで新規プライベートリポジトリorbstock-dockerを作成済み
$ git remote set-url origin https://github.com/xxxxxxx/orbstock-docker.git
$ git config --local user.name "xxxxxxxx"
$ git config --local user.email "xxxxx@xxxxxx"
# アクセストークンはglobalに登録済み
# とりまpush
$ git push -u origin main
docker-compose-lamp の環境設定ファイル準備と起動
.envファイルをサンプルからコピーして、とりあえずそのままのパラメータで起動だけやってみる。
$ cp sample.env .env
$ docker compose up -d
あと起動の前に、docker-compose.yml の先頭行のバージョン表記を削除
version: "3" # <- 削除
起動トラブル
redisの起動中に、いきなりキーチェーンアクセスのパスワードを求められた。
そもそも全く記憶にない。Gemini先生に聞いてみた
このポップアップは、Docker Credential Helperがキーチェーンに保存されたDockerの認証情報(ログインパスワードやトークン)にアクセスしようとしているために表示されます。
Redis自体がこの認証情報を直接要求しているわけではありません。おそらく、あなたが実行しようとしているDockerコンテナやDocker Composeの設定に、Docker Hubなどのプライベートなレジストリからイメージをプルする必要があるため、認証情報が必要になっています。
原因の仕組み
- あなたが
docker pull
やdocker-compose up
などのコマンドを実行。- 指定されたイメージがDocker Hubなどのプライベートレジストリにある。
- Dockerクライアントは認証が必要だと判断し、
docker-credential-osxkeychain
(Docker Credential Helperの一つ)を呼び出す。- このヘルパーは、過去に保存された認証情報をmacOSのキーチェーンから取得しようとする。
- キーチェーンは、セキュリティのため、外部からのアクセスに対してユーザーのパスワード入力を要求する。
- この一連の流れで、「キーチェーンアクセス」のパスワード入力ダイアログが表示される、というわけです。
したがって、Redisコンテナを起動するために、そのイメージの取得に認証が必要になっていると考えられます。パスワードを入力して「許可」または「常に許可」を選択すれば、Dockerは認証情報を取得し、イメージのプルを続行できます。
私:過去に認証情報を得たような記憶がない
はい、その可能性は十分にあります。過去に明示的に認証情報を入力した記憶がなくても、キーチェーンに情報が保存されていることはよくあります。
なぜ記憶にないのか?
主に以下の2つのケースが考えられます。
Docker Desktopの初期設定:
- Docker Desktopをインストールして初めて起動した際、Docker Hubにログインするように求められることがあります。
- このとき、ログイン情報(ユーザー名とパスワード)を入力すると、自動的に「キーチェーンに保存する」というオプションが有効になっており、意識せずに保存された可能性があります。
サードパーティ製ツールの利用:
- 開発ツールや統合開発環境(IDE)の中には、Dockerとの連携機能を持つものがあります。これらのツールが、バックグラウンドで認証を求め、その際にOSのキーチェーンに認証情報を保存したケースも考えられます。
つまり、Dockerのコマンドラインから直接
docker login
を実行しなくても、GUIアプリケーションや他のツール経由で認証情報が登録されていることがあり、それが今回のポップアップ表示につながっています。
ということで、試しにDocker Desktopアプリを起動してから
$ docker compose up -d
# すると・・・
$ docker compose up -d
[+] Running 5/5
✔ Network lamp_default Created 0.1s
✔ Container lamp-mysql8 Started 1.2s
✔ Container lamp-redis Started 1.2s
✔ Container lamp-php84 Started 1.6s
✔ Container lamp-phpmyadmin Started 1.6s
お見事。立ち上がりました。
で、Docker DesktopアプリをQuitして再度試すと、
# 一旦終了して
$ docker compose down
#デスクトップアプリを終了してから再度実行
ault Removed 0.3s
$ docker compose up -d
unable to get image 'lamp-database': Cannot connect to the Docker daemon at unix:///Users/yngdrsk/.docker/run/docker.sock. Is the docker daemon running?
ということで、docker daemonが立ち上がってないと。
なるほど、OrbstockはDocker Desktopの代替なわけだから、コイツを立ち上げてないとダメってことね。
$ orb start
$ docker compose up -d
結局キーチェーンアクセスは求められたけど、docker hubのパスワードだと分かったので通ったww
初回起動はとても時間がかかるので、しばらくお茶でも飲んで待ちます。
✔ lamp-database Built 0.0s
✔ lamp-webserver Built 0.0s
✔ Network lamp_default Created 0.1s
✔ Container lamp-mysql8 Started 0.6s
✔ Container lamp-redis Started 0.5s
✔ Container lamp-php84 Started 0.8s
✔ Container lamp-phpmyadmin Started 0.9s
めでたし。
とりあえずブラウザでlocalhostにアクセス
マジ神。Docker神。
てなわけで、とりあえず今回はここまで。
次回はバーチャルホストとSSLまわりの設定をサクッとやろうと思います。
トラブルがなければすぐ終わっちゃうんですけどw
ディスカッション
コメント一覧
まだ、コメントがありません