Docker compose ARGS не работает с окружением - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь понять использование 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 работает, когда жесткое кодирование переменной окружения не работает.

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 27 июня 2018

Проверьте версию Docker - в более старых версиях Docker команда Dockerfile ENV использует пробел вместо '='

FROM node:alpine
ARG NODE_ENV
ENV NODE_ENV ${NODE_ENV} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...