в другом? Т.е.
1/Dockerfile:
# ...
ARG FOO_VERSION=123
# ...
RUN echo $FOO_VERSION
2/Dockerfile:
FROM base1:latest
# ...
RUN echo ${FOO_VERSION}-devel
Понятно, что можно в оба образа прокидывать при сборке, но хочется иметь build-time дефолт во втором
ENV же есть
Он останется в образе и на этап исполнения. Не факт, что это плохо, но вдруг бы был вариант с ARG...
https://t.me/docker_ru/485595 а тут как раз не про ARG имелось ввиду? А то я подумал про ARG
ARG задаёт переменную времени сборки, а ENV-дефолтное значение переменной окружения как для дальнейших шагов сборки, так и для времени запуска (при запуске его можно будет переопределить).
думаю понял, завтра ещё почитаю, спасибо)
P.S. Т.е. получается, что секреты надо прокидывать либо: 1. (проще всего) через файл переменных (docker run --env-file /path/to/env/file XXX ), причём либо файл должен быть доступным только суперпользователю, либо что бы не было других процессов текущего пользователя, могущих прочитать этот файл. 2. передавать через stdin в запускаемое приложение, 3. Другими способами через сторонние каналы, например, передавать через https запрос в веб-сервер, который поднимает запускаемое приложение (с надлежащей проверкой сертификатов, пароли от закрытых ключей которых которых, опять же, надо как-то прокидывать внутрь приложений и контейнеров) и т.д.
большое спасибо! Стало намного понятнее
Обсуждают сегодня