https://docs.docker.com/compose/production/
删除应用程序代码的所有卷绑定,以使代码保持不变 在容器内部,并且不能从外部更改
我想用我的应用程序代码构建用于生产的图像。
我有一个文件 docker-compose-prod.yml
version: '3'
services:
------
nginx:
build:
context: ./docker/nginx
image: my_nginx:v1
ports:
- 80:80
volumes:
- ./docker/app:/var/www/html
depends_on:
- php
------
我的应用程序代码位于./docker/app中。 Dockerfile位于./docker/nginx中,我无法使用COPY命令将应用程序代码复制到/ docker / nginx文件夹之外。
当我运行构建命令时,在/ var / www / html中,我得到一个没有应用程序竞争的图像:
docker-compose -f docker-compose-prod.yml build
在这种情况下,如何使用我的应用代码构建图像?
答案 0 :(得分:1)
您可以在build参数中传递dockerfile:https://docs.docker.com/compose/compose-file/#dockerfile
这样,我认为您可以将应用程序上下文更改为./docker,然后在Dockerfile中将应用程序文件夹复制到/ var / www / html。这样,您在启动应用程序时不再需要指定音量。
答案 1 :(得分:0)
正确的配置如下:
version: '3'
services:
------
nginx:
build:
context: ./docker
dockerfile: nginx/Dockerfile-prod
image: my_nginx:v1
ports:
- 80:80
------
/ docker / nginx中的Dockerfile-prod
...
COPY ./app /var/www/html
...