В чем разница между ARG и ENV в Dockerfile
Python
Senior
СБЕР Роботы
В чем разница между ARG и ENV в Dockerfile
Ответы
`ARG` и `ENV` — это инструкции в Dockerfile для работы с переменными, но они имеют разные области применения:
- **ARG** (аргументы сборки):
- Используются только во время сборки образа (`docker build`).
- Не сохраняются в финальном образе.
- Передаются через `--build-arg` при сборке.
- Пример:```
ARG APP_VERSION=1.0
RUN echo "Building version ${APP_VERSION}"
```
- **ENV** (переменные окружения):
- Сохраняются в образе и доступны во время выполнения контейнера (`docker run`).
- Могут быть переопределены через `-e` при запуске.
- Пример:```
ENV DB_HOST=localhost
CMD ["echo", "DB host is ${DB_HOST}"]
```
**Ключевое отличие**: `ARG` — для сборки, `ENV` — для работы контейнера.