version: '2.4'
services:
myservice1:
container_name: mycontainername
build:
context: .
dockerfile: ./my-dockerfolder/Dockerfile
args:
- MY_ARG=${MY_ARG}
environment:
- MY_ARG=${MY_ARG}
mem_limit: 3500M
ports:
- "9090:9090"
extra_hosts:
- "one.mydomain.net:127.0.0.1"
- "two.mydomain.net:127.0.0.1"
myservice2:
container_name: myothercontainername
build:
context: .
dockerfile: ./other-dockerfolder/Dockerfile
args:
- BUILD=${BUILD}
- MY_ARG=${MY_ARG2}
environment:
- MY_ARG2=${MY_ARG2}
ports:
- "2023:22"
我的问题是当我再次运行docker-compose时,它正在使用相同的映像创建容器,而不管docker文件是否更改。
如何强制其将对docker文件的更改考虑在内?我需要担心的其他docker对象被重用了吗?我希望第二次运行docker-compose像第一次一样干净。
注意:我不想删除不需要删除的图像。我与docker repo的连接速度很慢,删除所有图像会使docker组成大约需要22分钟。
#1 楼
为什么不docker-compose build
? https://docs.docker.com/compose/reference/build/
您还可以执行
docker-compose up --build
强制进行重建。 #2 楼
使用此命令:docker-compose up --build
#3 楼
我发现有时如果部署不当,需要docker-compose build --no-cache
。
评论
同样值得注意的是,即使您每次构建,Docker的内置缓存也意味着仅当您更改Dockerfile或您要复制的任何文件时,才会重新构建映像。
–user2640621
18-10-14在20:15