2015-01-24 3 views
2

Я хотел бы иметь доступ к тегу/ревизии, используемой для сборки контейнера докеров изнутри этого контейнера. Есть ли простой способ нанести тег/ревизию во время сборки в качестве переменной окружения?Доступ к тегу в качестве переменной среды внутри контейнера Docker

Например, я хотел бы, чтобы API, работающий внутри контейнера, знал его текущую версию. Без докеров я обычно использовал git, чтобы написать ревизию в файл, доступ к которому может получить API, но это, похоже, не «путь докеров».

ответ

0

Это не API, но вы всегда можете передать тег командой -e команды run. Короткий пример $ docker run -it -e mytag=abc123 ubuntu:latest env | grep mytag mytag=abc123 , и поэтому внутри вашего контейнера mytag будет содержать тег контейнера.

+0

Это близко к тому, что я ищу, но до сих пор не навязывает, что все, что было передано -t в процессе сборки всплыла внутри контейнера, когда бежал. Я хочу, чтобы моя автоматическая сборка могла внедрить это значение в контейнер во время сборки. – Erik

+0

Вы также можете иметь в своем Dockerfile строку 'ENV mytag xxx', а затем в вашем рабочем контейнере у вас будет переменная среды, исходящая из вашего времени сборки. – user2915097

+0

Yup, подумал об этом, но для этого потребуется моя сборка для редактирования моего Dockerfile. Не конец света, но я удивлен, что нет простого способа получить доступ к информации о контейнере из контейнера. – Erik

Смежные вопросы