【发布时间】:2021-01-28 02:52:10
【问题描述】:
我正在尝试使用 Nginx-Proxy 在 Ubuntu VPS 上的 docker 容器内运行 WordPress 应用程序和 phpMyAdmin。
我创建了以下docker-compose.yml 文件
version: '3.4'
services:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
ports:
- 80:80
- 443:443
restart: always
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro
- /etc/certificates:/etc/nginx/certs
wordpress_app:
image: wordpress
restart: always
container_name: wordpress_app
environment:
- VIRTUAL_HOST=wordpress.mydomain.com
- VIRTUAL_PORT=5500
- WORDPRESS_DB_HOST=mysql_server:3306
- WORDPRESS_DB_USER=db_username
- WORDPRESS_DB_PASSWORD=db_password
- WORDPRESS_DB_NAME=wordpress_app
depends_on:
- nginx-proxy
- mysql_server
volumes:
- wordpress_app_public_html:/var/www/html
phpmyadmin:
image: phpmyadmin
container_name: phpmyadmin
restart: always
environment:
- VIRTUAL_HOST=phpmyadmin.mydomain.com
- VIRTUAL_PORT=5600
- PMA_HOST=mysql_server:3306
- MYSQL_USERNAME=root
- MYSQL_ROOT_PASSWORD=db_root_password
depends_on:
- nginx-proxy
- mysql_server
mysql_server:
image: mysql:latest
restart: always
container_name: mysql_server
environment:
- MYSQL_DATABASE=wordpress_app
- MYSQL_USER=db_username
- MYSQL_PASSWORD=db_password
- MYSQL_ROOT_PASSWORD=db_root_password
volumes:
- mysql_server_data:/var/lib/mysql
volumes:
wordpress_app_public_html:
mysql_server_data:
networks:
default:
external:
name: nginx-proxy
在/etc/certificates 路径中,我为每个域添加了.key 和.crt 文件。存在的4 个文件是
- phpmyadmin.mydomain.com.key
- phpmyadmin.mydomain.com.crt
- wordpress.mydomain.com.key
- wordpress.mydomain.com.crt
现在,当我执行docker-compose up 时,我可以毫无问题地浏览https://wordpress.mydomain.com。但是,当我浏览 http://phpmyadmin.mydomain.com 时出现以下错误
503 服务暂时不可用 nginx/1.17.5
当我浏览到https://phpmyadmin.mydomain.com 时,我得到一个空白页。
如何才能成功浏览 php-my-admin 实例?
更新
这是我根据以下反馈更新的docker-compose.yml 文件
version: '3.4'
services:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
ports:
- 80:80
- 443:443
restart: always
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- /etc/certificates:/etc/nginx/certs
wordpress_app:
image: wordpress
restart: always
container_name: wordpress_app
environment:
- VIRTUAL_HOST=wordpress.mydomain.com
- WORDPRESS_DB_HOST=mysql_server:3306
- WORDPRESS_DB_USER=db_username
- WORDPRESS_DB_PASSWORD=db_password
- WORDPRESS_DB_NAME=wordpress_app
depends_on:
- nginx-proxy
- mysql_server
volumes:
- wordpress_app_public_html:/var/www/html
expose:
- 80
phpmyadmin:
image: phpmyadmin
container_name: phpmyadmin
restart: always
environment:
- VIRTUAL_HOST=phpmyadmin.mydomain.com
- PMA_HOST=mysql_server:3306
- MYSQL_USERNAME=root
- MYSQL_ROOT_PASSWORD=db_root_password
depends_on:
- nginx-proxy
- mysql_server
expose:
- 80
mysql_server:
image: mysql:latest
restart: always
container_name: mysql_server
environment:
- MYSQL_DATABASE=wordpress_app
- MYSQL_USER=db_username
- MYSQL_PASSWORD=db_password
- MYSQL_ROOT_PASSWORD=db_root_password
volumes:
- mysql_server_data:/var/lib/mysql
volumes:
wordpress_app_public_html:
mysql_server_data:
networks:
default:
external:
name: nginx-proxy
【问题讨论】:
标签: wordpress docker nginx phpmyadmin jwilder-nginx-proxy