Я пытаюсь понять использование args:
в файле docker-compose.yml , чтобы я мог задавать переменные среды во время выполнения сборки. Я понял, что если у меня есть файл .env , он автоматически устанавливает его и может получить доступ внутри моего Dockerfile , например,
FROM node:alpine
ARG NODE_ENV
ENV NODE_ENV=${NODE_ENV} // --> This works fine if .env file is present
Но если я хочу загрузить эти значения через environment:
(в docker-compose.yml и без файла .env ), например,
version: '3.3'
services:
web:
image: web
environment:
- NODE_ENV=dev
build:
context: .
args:
- NODE_ENV
ports:
- 8100
затем возвращает пустое / пустое значение внутри Dockerfile .
Я обнаружил, что переменные окружения не доступны напрямую в Dockerfile (или во время сборки), но как env_file
работает, когда жесткое кодирование переменной окружения не работает.
Заранее спасибо за помощь.