问题描述
docker-compose
可以被认为是DockerCLI的包装器(实际上,它是python中的另一种实现,如[注释中所述),以节省时间并避免500个字符长的行(并同时启动多个容器)。它使用一个名为的文件docker-
compose.yml
来检索参数。
您可以在此处找到docker- compose文件格式的参考。
因此,基本上,docker-compose build
您将阅读docker-
compose.yml
,查找包含该build:
语句的所有服务,并docker build
为每个服务运行一个。
每个人都build:
可以指定Dockerfile
,上下文和args传递给docker。
最后给出一个示例docker-compose.yml
文件:
version: '3.2'
services:
database:
image: mariadb
restart: always
volumes:
- ./.data/sql:/var/lib/MysqL
web:
build:
dockerfile: Dockerfile-alpine
context: ./web
ports:
- 8099:80
depends_on:
- database
调用时docker-compose build
,仅web
目标将需要构建映像。该docker build
命令如下所示:
docker build -t web_myproject -f Dockerfile-alpine ./web
解决方法
docker-compose build
和之间有什么区别docker build
?
假设在dockerized项目路径中有一个docker-compose.yml
文件:
docker-compose build
和
docker build