Dockerコンテナ(php7.0-fpm、nginx、mysql、およびphpmyadmin)を使用するアプリケーションを開発しました。ローカル(MacOS)と私のVPS(Debian 9 Stretch)にあります。昨日、nginxがhttpトラフィックをhttpsに強制できることを確認するために、私のdocker-composeファイルのnginx設定にポート80を追加しました。これは私が期待のようにローカルに動作しますが、私は私のVPS上の変更を引っ張ったときに、私はdocker-compose up --build
を実行したとき、私は、次のメッセージが表示されます。ローカルで動作するVPS(Debian)にDockerコンテナがロードされない
ERROR: for my_nginx Cannot start service nginx: driver failed programming external connectivity on endpoint my_nginx (ff89cec0a968850919eebabe9e003c0bd4e65205eb6f3c3dd286037b3a1745fc): Error starting userland proxy: listen tcp 0.0.0.0:80: listen: address already in use
ERROR: for nginx Cannot start service nginx: driver failed programming external connectivity on endpoint my_nginx (ff89cec0a968850919eebabe9e003c0bd4e65205eb6f3c3dd286037b3a1745fc): Error starting userland proxy: listen tcp 0.0.0.0:80: listen: address already in use
奇妙なことは、私はローカルでコマンドを実行すると、すべてが正常に動作していることです。私ドッキングウィンドウ-compose.yml
version: "2.0"
services:
nginx:
build: ./nginx/
ports:
- 443:443
- 80:80
volumes:
- ${APPLICATION_ROOT}:/${WEBROOT}
- ./ssl:/etc/nginx/ssl
- ./nginx/config/default.conf:/etc/nginx/conf.d/default.conf
restart: always
depends_on:
- php
environment:
ENVIRONMENT: "${APPLICATION_ENV}"
URL: "${APPLICATION_URL}"
container_name: my_nginx
php:
build: ./php/
ports:
- 8080:80
volumes:
- ${APPLICATION_ROOT}:/${WEBROOT}
restart: always
depends_on:
- mysql
environment:
ENVIRONMENT: "${APPLICATION_ENV}"
URL: "${APPLICATION_URL}"
MYSQL_HOST: "${DB_HOST}"
MYSQL_DATABASE: "${DB_NAME}"
MYSQL_USER: "${DB_USERNAME}"
MYSQL_PASSWORD: "${DB_PASSWORD}"
container_name: my_php
mysql:
build: ./mysql/
volumes:
- ./db:/var/lib/mysql
restart: always
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
MYSQL_HOST: "${DB_HOST}"
MYSQL_DATABASE: "${DB_NAME}"
MYSQL_USER: "${DB_USERNAME}"
MYSQL_PASSWORD: "${DB_PASSWORD}"
explicit_defaults_for_timestamp: 1
container_name: my_db
phpmyadmin:
build: ./phpmyadmin/
restart: always
depends_on:
- mysql
ports:
- 8181:80
environment:
PMA_HOST: my_db
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
MYSQL_USERNAME: "${DB_USERNAME}"
MYSQL_PASSWORD: "${DB_PASSWORD}"
container_name: my_phpmyadmin
誰もが、私はここに欠けているものを知っているかの内容を以下に
?私は8282:80
にPHPポートを変更しようとしましたが、どちらも動作しませんでした(と私は実際にポート&すべての仕組みを理解していない)。そして、それはどうすれば私のMac上でローカルに動作しますか?
Apacheは私のvpsにインストールされ、ポート80に耳を傾けるので、nginxはポート8001を聞きました。それが解決しました。 Thnx – Maurice