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 updupă modificarea codului și surpriza că nimic nu s-a schimbat: imaginea existentă nu se reconstruiește automat. Adaugă--build. - Folosirea lui
--no-cachela 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.
Întrebări & Exemple de Cod:
docker compose buildAi o nelămurire despre utilizarea comenzii
docker compose buildsau 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.