Ce face Dockerfile: LABEL
Etichetele (labels) sunt perechi cheie-valoare salvate în configurația imaginii. Nu influențează rularea, dar ajută la organizare: afli din ce depozit și din ce commit provine o imagine, cine o întreține, sau filtrezi imaginile cu docker images --filter label=....
Pentru informațiile standard există chei definite de specificația OCI, cu prefixul org.opencontainers.image. (title, version, source, revision, authors). Etichetele se moștenesc din imaginea de bază și pot fi suprascrise. Instrucțiunea veche MAINTAINER este depreciată: folosește LABEL org.opencontainers.image.authors=....
Parametri
| Parametru | Descriere |
|---|---|
LABEL cheie=valoare |
O etichetă; valorile cu spații se pun între ghilimele. |
org.opencontainers.image.source |
Cheia OCI pentru adresa depozitului de cod. |
org.opencontainers.image.version |
Cheia OCI pentru versiunea aplicației. |
docker build --label k=v |
Adaugă etichete la build, fără să modifici Dockerfile-ul. |
docker images --filter label=k=v |
Filtrează imaginile după etichetă. |
Exemple
Exemplul 1: Etichete OCI completate la build
Versiunea și commit-ul vin din CI prin ARG.
FROM nginx:1.27-alpine
ARG VERSIUNE=dev
ARG COMMIT=necunoscut
LABEL org.opencontainers.image.title="Magazin Iasi - frontend" \
org.opencontainers.image.version="$VERSIUNE" \
org.opencontainers.image.revision="$COMMIT" \
org.opencontainers.image.source="https://github.com/firma/magazin" \
ro.firma.echipa="plati"
COPY dist/ /usr/share/nginx/html/
Exemplul 2: Citirea și filtrarea după etichete
Construim cu valori concrete, apoi citim o etichetă și listăm imaginile echipei.
docker build --build-arg VERSIUNE=2.4.0 --build-arg COMMIT=9f3c2ab -t magazin-frontend:2.4.0 .
docker inspect -f '{{index .Config.Labels "org.opencontainers.image.version"}}' magazin-frontend:2.4.0
docker images --filter "label=ro.firma.echipa=plati" --format '{{.Repository}}:{{.Tag}}'
Ieșire în terminal
2.4.0
magazin-frontend:2.4.0
Greșeli frecvente
- Punerea de secrete în etichete (tokenuri, parole): etichetele sunt vizibile pentru oricine poate rula
docker inspectpe imagine. - Folosirea cheilor fără prefix (
versiune=1): pot intra în conflict cu etichetele moștenite din imaginea de bază. Folosește un prefix de domeniu inversat (ro.firma.) sau cheile OCI.
Comenzi înrudite
Dockerfile: VOLUME: Marchează un director din imagine ca punct de montare pentru date persistente; Docker creează automat un volum anonim dacă nu dai altul.docker history: Afișează straturile unei imagini, cu instrucțiunea Dockerfile care a creat fiecare strat și mărimea lui.