我有一个多容器docker-compose应用程序(WordPress + MySQL),需要与数据中心的开发人员共享。该应用程序将从那里运行(它将是一个公共站点),但是我将无法直接访问该部署。因此,我将图像推送到Docker Hub,并为有问题的开发人员提供docker-compose.yml文件。该网站是静态的,一旦启动并运行,将不会添加任何上传,用户帖子或评论。我不确定要推送多少个图像-显然是自定义WordPress图像,包含所有添加的内容,但是我还应该推送MySQL图像吗?这将包含所有数据-每个页面中的文本,链接等。我将在nginx-proxy后面运行该应用程序,因此还将其添加到撰写文件中。
这是用于构建原始映像的docker-compose文件:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- ./db/initdb.d:/docker-entrypoint-initdb.d
restart: always
environment:
MYSQL_ROOT_PASSWORD: some_root_password
MYSQL_DATABASE: some_db
MYSQL_USER: some_user
MYSQL_PASSWORD: some_password
wordpress-app:
depends_on:
- db
image: wordpress:latest
restart: always
expose:
- "80"
environment:
- VIRTUAL_PORT=80
- VIRTUAL_HOST=example.org,example.com,example.local
volumes:
- ./wp:/var/www/html
networks:
default:
external:
name: mynetwork
所以我当时想我需要提供的docker-compose文件应该看起来像这样:
version: '3'
services:
db:
image: myrepo/mydb
restart: always
wordpress-app:
depends_on:
- db
image: myrepo/app
restart: always
nginx-proxy:
image: jwilder/nginx-proxy:latest
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
whoami:
image: jwilder/whoami
environment:
- VIRTUAL_HOST=whoami.local
networks:
default:
external:
name: mynetwork
我想我也需要提供有关端口和主机的信息吗?也许数量?
在我的脑海中,我想到了只推送一个图像的想法,但是我猜,在配置之后,我确实需要两个自定义图像-WordPress和MySQL数据库。
感谢您对tihs的任何澄清。