【发布时间】:2017-06-08 14:51:55
【问题描述】:
我正在整理一个docker-compose.yml 文件来为我正在处理的项目运行多个服务。该项目有一个位于同一域下的 Magento 和 Wordpress 网站,“相同域”方面需要一个非常简单的 nginx 容器来将请求路由到任一服务。
所以我将这个架构为 4 个容器 (visualisation):
- “magento”容器,使用内部项目特定的图像。
- “wordpress”容器,使用内部项目特定图像。
- 运行
mysql:5.6的“db”容器,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/
有人支持/反对这两种方法吗?
【问题讨论】:
-
这里有错字:
FROM nginx:aline(aline=>alpine) -
啊,不错。谢谢。
标签: docker docker-compose dockerfile docker-stack