私は、実稼働環境の共有ホスティングでホストされているWebサイトを持っています。ウェブサイトはコード内のlocalhost
を介してデータベースに接続します。私のドッカーの作成では、私はphp:5.6-apache
とmysql:5.6
インスタンスを持っています。Docker-compose port forwarding
docker-composeに、Webコンテナポートのポート3306をdbコンテナの3306に転送するように指示することはありますか。そのため、Webコンテナが3306のlocalhostに接続するとき3306でdbに送信されます。ウェブコンテナのポート80を外部に共有しますか?
現在のドッキングウィンドウ-compose.yml:
version: "3"
services:
web:
build: .
#image: php:5.6-apache
ports:
- "8080:80"
environment:
- "APP_LOG=php://stderr"
- "LOG_LEVEL=debug"
volumes:
- .:/var/www/html
network_mode: service:db # See https://stackoverflow.com/a/45458460/95195
# networks:
# - internal
working_dir: /var/www
db:
image: mysql:5.6
ports:
- "3306:3306"
environment:
- "MYSQL_XXXXX=*****"
volumes:
- ./provision/mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
# networks:
# - internal
networks:
internal:
driver: bridge
現在のエラー:
ERROR: for web Cannot create container for service web: conflicting options: port publishing and the container type network mode
フラグはポートと互換性がないようです。私はそれをしたいだけでなく、ウェブコンテナポート80を世界にアクセス可能にしてもらいたい。私はnetwork_mode:サービスがどのようにドキュメントから行うのかを正確に理解することができません。 –
ポートに関する詳細を更新しました。アップレートを参照してください –