Docker: Добавление LABEL при Сборке (Dockerfile) — Пример

Добавление label в Docker-образ является хорошей практикой, так как метаданные позволяют классифицировать образы, хранить информацию о сборке в самих образах и особенно полезны при автоматизации.

В этой заметке я покажу 2 способа добавления пользовательских метаданных в Docker-образ.

Одним из способов добавления label в Docker-образ является применение инструкции LABEL в Dockerfile, в то время как другим способом является использование опции --label с командой docker build.

Второй способ особенно полезен когда вам нужно динамически добавлять такие метаданные, как например git-commit или build-url, во время build pipeline.

Я также покажу, как отобразить метаданные с помощью команды docker inspect.

Дельный Совет: Как добавить тег в существующий Docker-образ, либо как с тегами собрать новый образ! Читать далее →

Добавление LABEL в Docker-образ

Добавить пользовательские метаданные в Docker-образ, используя в Dockerfile инструкцию LABEL:

LABEL <key>=<value>

Пример:

# Label docker image
LABEL version="0.1"
LABEL maintaner="John Smith "
LABEL release-date="2020-04-05"
LABEL promoted="true"

Множество Метаданных: До версии Docker 1.10, во избежании создания дополнительных слоев, рекомендовалось все метки объединять в одной инструкции LABEL. В новых версиях Docker это больше не требуется, хотя все еще поддерживается (источник).

Другим способом добавления label, является использование опции --label во время выполнения команды docker build, например:

$ docker build . --label "git-commit=1e872b5" \
                 --label "build-url=http://localhost:8080/build/432"

Для отображения label, используйте команду docker inspect, например:

$ docker inspect 1ebe5b1784ad --format '{{ json .Config.Labels }}' | sed 's/,/\n/g'
{"build-url":"http://localhost:8080/build/432"
"git-commit":"1e872b5"
"maintaner":"John Smith "
"promoted":"true"
"release-date":"2020-04-05"
"version":"0.1"}

Дельный Совет: Отображение слоев Docker-образа! Читать далее →