1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Symfony CLIをつかったローカルWebサーバ + OrbStack時にコンテナが起動しない時の回避策

Posted at

Symfony CLIを使ってローカルWebサーバを起動すると、プロジェクト内にある compose.yaml を判別し、Dockerコンテナを自動起動してくれます。起動すると、以下の様にプロファイラに Docker Compose , Env Vars が起動中な状態となります。

image.png

Symfony CLIでローカルWebサーバを起動すると、Dockerの内容を解釈して、DBの接続情報などを環境変数として追記してくれます。詳しくはこちら。

https://qiita.com/ippey_s/items/8919f618d13b3b6242e9

ところが、OrbStackを利用してDocker環境を用意している場合、同じ様にしていてもコンテナが起動せず環境変数も追記されません。

image.png

これは、Symfony CLIが DOCKER_HOST の値を使って情報を取得しているからです。 docker context ls を起動すると、以下のようになっていると思います。

% docker context ls
NAME            DESCRIPTION                               DOCKER ENDPOINT                                        ERROR
default         Current DOCKER_HOST based configuration   unix:///var/run/docker.sock                            
desktop-linux   Docker Desktop                            unix:///Users/{ユーザ名}/.docker/run/docker.sock     
orbstack *      OrbStack                                  unix:///Users/{ユーザ名}/.orbstack/run/docker.sock   

OrbStackを使用するようになっていますが、 DOCKER_HOST には default が使われています。
なお、この unix:///var/run/docker.sock は、 orbstackのdocker.sockへのシンボリックリンクとなっていますが、どうもこれがうまく認識されていないようです。

そこで、 .zshrc に以下を追記します。

~/.zshrc
export DOCKER_HOST=unix:///Users/{ユーザ名}/.orbstack/run/docker.sock

これにより、Symfony CLIが DOCKER_HOST を介して正しい情報を取得することができ、ローカルWebサーバ起動時に、コンテナも起動する様になります。

Symfony CLIやOrbStacknアップデートによって、上記対応は不要になる可能性があります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?