1

Phundament 4.3.0-beta6、Docker 1.11.0、および Docker Compose 1.7.0 の新規インストールを使用して、Yii2 Web アプリをコンテナー化しようとしています。ホストは Ubuntu ベースの Linux Mint 17.3 です。

すべてが開発環境でうまく機能していますが、実稼働イメージを正しく構築する方法が見つかりません。

同じ問題で実行されている古いバージョンの Phundament と Docker を既に使用しているので、バグに直面していないと確信しています。何かを誤解しただけです。

問題は、ローカル開発用の docker-compose ファイル ( docker-compose.override.yml 、 docker -compose.ymlをオーバーライドする) が、 phpコンテナーとnginxコンテナーの両方にルート プロジェクト フォルダーをマウントしていることです。

volumes:
  - .:/app

いくつかのカスタマイズの後、php コンテナーを再構築すると、( Dockerfileの指示に従って) アプリ コードがコンテナーに正常に追加されるので、docker-compose.override.yml ファイルを編集して、 phpコンテナーvolumeから命令を削除すると、すべて問題ありません。

しかし、nginxコンテナーで同じことを行い、nginx を実行するとdocker-compose up -d 、 404 が返されます。これは、 phpコンテナーにランディング ページが見つからないことを意味します。プロジェクトフォルダーのボリュームをマウントすると、それが見つかります。

私はそれが期待される動作ではないと思います...私が間違っていることは何ですか?

4

1 に答える 1

1

基本的に、との PHP イメージnginxのフォルダーだけが必要です。webindex.phpassets/

したがって、次のようにvolumesandを使用できます。volumes_from

php:
  volumes:
    - /app/web
nginx:
  volumes_from:
    - php

別のオプションはnginx、すべてのリクエストを PHP コンテナーに転送するように構成することですが、これは静的ファイルには実際には必要ありません。

ノート!アプリケーションを再デプロイするときは、ボリュームに変更を適用するために、PHP および nginx コンテナーが必要になる場合がありkillます。rm -v

問題を作成したり、改善などについて考えがある場合はお気軽に...

完全な開示: 私は Phundament のコア開発者です。

于 2016-04-21T09:41:18.517 に答える