docker compose 构建单个容器
docker compose build single container
使用 Compose,如果我 运行 docker-compose build
,它将重建 所有 个容器:
> docker-compose build
Building elasticsearch
Step 1 : FROM elasticsearch:2.1
---> a05cc7ed3f32
Step 2 : RUN /usr/share/elasticsearch/bin/plugin install analysis-phonetic
---> Using cache
---> ec07bbdb8a18
Successfully built ec07bbdb8a18
Building search
Step 1 : FROM php:5.5.28-fpm
---> fcd24d1058c0
...
即使使用缓存重建,这也需要时间。所以我的问题是:
有没有办法只重建一个特定的容器?
是,使用服务名称:
docker-compose build elasticsearch
如果您想 运行 和 重新创建 您的 docker-compose 文件中的特定服务可以像@dnephin 提议的那样做,比如
$ docker-compose up -d --force-recreate --no-deps --build service_name
假设您的 docker-compose.yml 文件类似于
version: '3'
services:
service_1:
.....
service_2:
.....
docker-compose up -d --no-deps --build <service_name>
您可以将 --no-start
标记添加到 docker-compose,稍后再开始,因为您只会构建一项服务。
使用 Compose,如果我 运行 docker-compose build
,它将重建 所有 个容器:
> docker-compose build
Building elasticsearch
Step 1 : FROM elasticsearch:2.1
---> a05cc7ed3f32
Step 2 : RUN /usr/share/elasticsearch/bin/plugin install analysis-phonetic
---> Using cache
---> ec07bbdb8a18
Successfully built ec07bbdb8a18
Building search
Step 1 : FROM php:5.5.28-fpm
---> fcd24d1058c0
...
即使使用缓存重建,这也需要时间。所以我的问题是:
有没有办法只重建一个特定的容器?
是,使用服务名称:
docker-compose build elasticsearch
如果您想 运行 和 重新创建 您的 docker-compose 文件中的特定服务可以像@dnephin 提议的那样做,比如
$ docker-compose up -d --force-recreate --no-deps --build service_name
假设您的 docker-compose.yml 文件类似于
version: '3'
services:
service_1:
.....
service_2:
.....
docker-compose up -d --no-deps --build <service_name>
您可以将 --no-start
标记添加到 docker-compose,稍后再开始,因为您只会构建一项服务。