如何通过Docker Compose自动构建自定义镜像并一键启动容器
解决方案
你可以通过修改docker-compose.yml里foo_app服务的配置,添加build字段来实现自动构建镜像,不用再手动执行docker build命令。
修改后的docker-compose.yml配置示例
services: foo_app: # 指定Dockerfile所在的上下文目录(这里是当前目录,即Dockerfile和docker-compose.yml同路径) build: . # 指定构建后生成的镜像名称,和你之前手动构建的名字保持一致 image: foo_php # 保留你原有的其他配置(比如ports、volumes等) # ports: # - "8080:80" # volumes: # - ./src:/var/www/html
工作逻辑
- 首次执行
docker compose up时,Docker Compose会自动检查本地是否存在foo_php镜像:- 若不存在,会自动触发构建流程(效果等同于手动运行
docker build -t foo_php .),构建完成后启动容器。 - 若镜像已存在,直接跳过构建步骤,启动容器。
- 若不存在,会自动触发构建流程(效果等同于手动运行
- 如果后续修改了Dockerfile或相关代码,需要更新镜像,可以执行
docker compose up --build强制重新构建并启动容器。
内容的提问来源于stack exchange,提问作者WillD
相关产品推荐
相关产品推荐

