我正在整理一个docker-compose.yml
文件来为我正在处理的项目运行多个服务。该项目有一个位于同一域下的 Magento 和 Wordpress 网站,“相同域”方面需要一个非常简单的 nginx 容器来将请求路由到任一服务。
所以我把这个架构成 4 个容器(可视化):
- 一个“magento”容器,使用内部项目特定的图像。
- 一个“wordpress”容器,使用内部项目特定的图像。
- 一个“db”容器正在运行
mysql:5.6
,init db 转储安装在/docker-entrypoint-initdb.d
. - 一个“路由器”容器运行
nginx:alpine
,自定义配置安装在/etc/nginx/nginx.conf
. 这用作设置了两个位置指令的反向代理。location /
到“magento”的location /blog
路线,以及到“wordpress”的路线。
我想保持简单并避免构建不必要的自定义图像,但是在“路由器”的上下文中,我不确定我在做什么是最好的方法,或者作为特定于项目的图像是否会更好.
我倾向于将自定义配置安装到nginx:alpine
容器中的当前方法,因为配置特定于正在运行的堆栈 - 作为单个独立容器没有意义。
所以这两种方法,没有自定义图像,我们有以下内容docker-compose.yml
router:
image: nginx:alpine
networks:
- projectnet
ports:
- "80:80"
volumes:
- "./router/nginx.conf:/etc/nginx/nginx.conf"
否则,我们有一个Dockerfile
包含以下内容,正如我在互联网和其他 StackOverflow 响应中所建议的那样。
FROM nginx:alpine
ADD nginx.conf /etc/nginx/
有人支持/反对这两种方法吗?