docker compose build single container

docker-compose bind mount
docker-compose secrets
docker-compose host network
docker-compose up vs run
docker-compose update
docker-compose tty
docker build
docker-compose down example

Using Compose, if I run docker-compose build, it will rebuild all the containers :

> 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
...

Even when rebuilding using cache, this takes time. So my question is:

Is there a way to rebuild only one specific container?

Yes, use the name of the service:

docker-compose build elasticsearch

docker-compose build, Options: --compress Compress the build context using gzip. --force-rm Always remove intermediate containers. --no-cache Do not use cache when building the​  Using Docker-Compose to Simplify Multi-Container Builds Getting Started with Docker-Compose. Installation is easy enough in most cases, A Basic Docker-Compose YAML File. Docker-Compose uses YAML as it’s configuration file format. Build Images and Launch Containers at Once. Here is where the

docker-compose up -d --no-deps --build <service_name>

Source

docker-compose up, --build Build images before starting containers. --abort-on-container-exit Stops all containers if any container was stopped. Incompatible with -d. -t, --timeout  The docker-compose.yml file is broken into sections, each section represents a single container which, when combined with the other containers, create the service. For example, you could have a

if you want to run a specific service inside your docker-compose file you can do it the same way as @dnephin proposed, like

$ docker-compose.exe up -d service_name

Suppose your docker-compose.yml file is like

version: '3'
services:
  service_1:
      .....
  service_2:
      .....

! For that to work, the service you want to call should not depend from other services.

Compose file version 3 reference, Compose is a tool for defining and running multi-container Docker applications. Then, with a single command, you create and start all the services from your you can set the project name to a unique build number; on a shared host or dev  If you've updated your code, you can do the build and reload in a single step with: docker-compose up --detach --build That will first rebuild your images from any changed code, which is fast if there are no changes since the cache is reused. And then it only replaces the changed containers.

You have do do it manually using image tag. More details here.

Overview of Docker Compose, The quick answer here to rebuild the single container and restart it is: docker-​compose up -d --build worker. This would be the ideal solution if,  The docker-compose.yml file allows you to configure and document all your application's service dependencies (other services, cache, databases, queues, etc.). Using the docker-compose CLI command, you can create and start one or more containers for each dependency with a single command (docker-compose up).

docker-compose up/down just one container, Also, for single-container scenarios, using Docker Compose provides container. version: '3.4' services: node-hello: image: node-hello build:  The replacement happens before anything else, using values from a .env file, located in the same directory from which you are running your docker-compose commands. The first step, is to build a new Docker image. When using docker-compose, you can define build blocks for single services. Those are used to build fresh images if there are none

Use Docker Compose to work with multiple containers, The docker-compose.yml file is broken into sections, each section represents a single container which, when combined with the other containers,  If the Compose file specifies an image name, the image is tagged with that name, substituting any variables beforehand. See variable substitution. If you change a service’s Dockerfile or the contents of its build directory, run docker-compose build to rebuild it. fig, composition, compose, docker, orchestration, cli, build

How to build a Docker Compose file, You can sometimes skip the extra step of docker-compose build because docker-​compose up will automatically build the container if it does not exist. $ docker-  Link to containers started outside this docker-compose.yml or even outside of Compose, especially for containers that provide shared or common services. external_links follow semantics similar to the legacy option links when specifying both the container name and the link alias ( CONTAINER:ALIAS ).

Comments
  • This wouldn't work, if it depends on something it would run everything it depends on.