为什么docker compose build不能运行命令,但docker build可以?
我的Dockerfile: My docker-compose.yml文件: 如果仅运行docker build: 它可以运行以下命令:为什么docker compose build不能运行命令,但docker build可以?,docker,docker-compose,Docker,Docker Compose,我的Dockerfile: My docker-compose.yml文件: 如果仅运行docker build: 它可以运行以下命令: RUN sed -i 's+replace_host+'"$API_HOST"'+g' index.yaml RUN multi-file-swagger index.yaml > index.json 当我打开容器时,我可以发现index.json存在 但是如果使用docker compose build和docker compose up,则检查容
RUN sed -i 's+replace_host+'"$API_HOST"'+g' index.yaml
RUN multi-file-swagger index.yaml > index.json
当我打开容器时,我可以发现index.json存在
但是如果使用docker compose build和docker compose up,则检查容器中的index.json,找不到它。您可以使用以下命令覆盖应用程序文件夹中的所有文件:
volumes:
- ./:/go/src/app
您需要从compose中删除volume部分Dockerfile中的卷也没有任何作用,我强烈建议将其删除。它的两个最明显的效果是防止以后运行的命令在docker运行容器时工作和泄漏匿名卷;这与是否可以像这样隐藏图像内容无关。
docker build -t myapp . --build-arg API_HOST=api.my-real-domain.com
RUN sed -i 's+replace_host+'"$API_HOST"'+g' index.yaml
RUN multi-file-swagger index.yaml > index.json
volumes:
- ./:/go/src/app