Docker komponieren Build Single Container

97

Wenn ich Compose verwende, docker-compose buildwerden alle Container neu erstellt:

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

Selbst bei der Neuerstellung mithilfe des Cache dauert dies einige Zeit. Meine Frage lautet also:

Gibt es eine Möglichkeit , nur einen bestimmten Container neu zu erstellen?

Marc Perrin-Pelletier
quelle

Antworten:

199

Ja, verwenden Sie den Namen des Dienstes:

docker-compose build elasticsearch
Dnephin
quelle
17
docker-compose up -d --no-deps --build <service_name>

Quelle

FTM
quelle
3

Wenn Sie einen bestimmten Dienst in Ihrer Docker-Compose-Datei ausführen und neu erstellen möchten, können Sie dies auf die gleiche Weise tun, wie von @dnephin vorgeschlagen

$ docker-compose up -d --force-recreate --no-deps --build service_name

Angenommen, Ihre Datei docker-compose.yml ist wie folgt

version: '3'
services:
  service_1:
      .....
  service_2:
      .....
Rambou
quelle
Dies würde nicht funktionieren, wenn es von etwas abhängt, würde es alles ausführen, von dem es abhängt.
jemiloii
In der Tat ging es bei der Frage darum, das neu zu erstellen.
Ich
-1

Sie müssen dies manuell mithilfe des Bild-Tags tun. Weitere Details hier .

TopperH
quelle