docker compose build în Docker

Construiește (sau reconstruiește) imaginile serviciilor care au secțiunea build în compose.yaml.

Sintaxă comandă
docker compose build [opțiuni] [serviciu...]

Ce face docker compose build

Pentru serviciile care au build: în loc de (sau pe lângă) image:, docker compose build rulează build-ul cu contextul, Dockerfile-ul și argumentele din fișier. Implicit construiește toate aceste servicii, în paralel; poți da și doar numele unuia.

docker compose up construiește imaginea doar dacă ea nu există încă. Dacă ai modificat codul sau Dockerfile-ul, rulează docker compose build sau docker compose up --build, altfel pornești în continuare imaginea veche.

Parametri

Parametru Descriere
--no-cache Nu folosește cache-ul; reface toți pașii.
--pull Descarcă întotdeauna cea mai nouă versiune a imaginii de bază.
--build-arg CHEIE=VALOARE Setează un ARG din Dockerfile.
--push Publică imaginile în registru după build.
-q, --quiet Nu afișează ieșirea build-ului.
docker compose up --build Reconstruiește și pornește într-un singur pas.

Exemple

Exemplul 1: Reconstruirea unui singur serviciu

Am schimbat package.json; reconstruim doar API-ul, cu imaginea de bază actualizată (ieșire scurtată).

docker compose build --pull api

Ieșire în terminal

[+] Building 18.6s (11/11) FINISHED
 => [api internal] load build definition from Dockerfile               0.0s
 => [api internal] load metadata for docker.io/library/node:22-alpine  1.2s
 => [api 1/5] FROM docker.io/library/node:22-alpine@sha256:…           0.0s
 => CACHED [api 2/5] WORKDIR /app                                      0.0s
 => [api 3/5] COPY package*.json ./                                    0.1s
 => [api 4/5] RUN npm ci --omit=dev                                   14.3s
 => [api 5/5] COPY . .                                                 0.2s
 => [api] exporting to image                                           2.1s
[+] Building 1/1
 ✔ magazin-api  Built                                                  0.0s

Exemplul 2: Argumente de build în compose.yaml

Versiunea aplicației ajunge în imagine prin args; o putem suprascrie din linia de comandă.

# compose.yaml
services:
  api:
    build:
      context: .
      args:
        VERSIUNE: "1.4.0"
    image: firma/magazin-api:1.4.0

docker compose build --build-arg VERSIUNE=1.4.1 api

Greșeli frecvente

  • Rularea docker compose up după modificarea codului și surpriza că nimic nu s-a schimbat: imaginea existentă nu se reconstruiește automat. Adaugă --build.
  • Folosirea lui --no-cache la fiecare build: reface și pașii lenți care nu s-au schimbat (de exemplu instalarea pachetelor). Folosește-l doar când bănuiești o problemă de cache.

Comenzi înrudite

  • docker compose config: Validează fișierul compose.yaml și afișează configurația finală, după înlocuirea variabilelor și combinarea fișierelor.
  • docker compose run: Pornește un container nou pentru o comandă unică (migrare, test, consolă), cu configurația unui serviciu din compose.yaml.
  • docker compose restart / stop / start: Repornește, oprește sau pornește containerele existente ale serviciilor, fără să le recreeze și fără să aplice modificări din compose.yaml.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: docker compose build

Ai o nelămurire despre utilizarea comenzii docker compose build sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.