背景
- Symfony を Vagrant + Docker で動かしたいため、Docker イメージの docker-symfony を使った
- コンテナの起動まではできたものの、動作確認のためにホスト OS から PHP アプリケーションへのアクセスができない
- nginx の "404 Not Found" が出る
対処方法
1. Vagrantfile にポートフォワード設定をする
- 基本的なところだが、改めて設定を確認する
- 以下のような記述がされていれば OK (筆者は 8000 -> 8000 に設定している)
Vagrantfile
config.vm.network "forwarded_port", guest: 8000, host: 8000
- VM をすでに起動している場合は
vagrant reload
して反映させておく
備考
- フォワード先のポートは
docker-compose.yml
のports
と辻褄をあわせておくこと
docker-compose.yml
nginx:
build: ./nginx
ports:
- "8000:80"
:
2. ホスト OS の hosts に symfony.localhost
を追加する
- 個人的にはここが盲点だった
- docker-symfony を使う場合は hosts に
symfony.localhost
を追加する必要がある- …が、てっきり ゲスト OS の hosts だけに追加すればよいのだと勘違いしていた
- 実際は ホスト OS (Windows なり Mac なり Linux なり) の hosts に追加が必要
- Windows XP 以降であれば
C:\Windows\System32\drivers\etc
に hosts があるので以下を追加
hosts
127.0.0.1 symfony.localhost