Здесь я пытаюсь использовать сценарий оболочки, но если я не устанавливаю ENV по умолчанию в файле Docker, он не принимает значение из окружения.Подскажите, пожалуйста, как читать переменную среды во время выполнения вместо чтения переменной среды во время создания докера.Ниже приведен мой файл Docker Compose.
FROM node:8
WORKDIR /src
ADD . /src
RUN npm install
RUN npm install -g @dojo/cli
RUN npm install @dojo/cli-build-app@3.0.7
RUN npm install @dojo/cli-upgrade-app --no-save
RUN dojo upgrade app
RUN npm install @dojo/framework
RUN npm uninstall -S -D @dojo/core @dojo/has @dojo/i18n @dojo/widget-core @dojo/routing @dojo/stores @dojo/shim @dojo/test-extras
RUN npm upgrade
RUN npm i @dojo/themes
RUN npm install @dojo/widgets@latest
EXPOSE 80
#CMD ["dojo", "build", "app","--feature","baseUrl=" "echo ${baseUrl}" ,"--mode", "dev", "--serve", "--port", "80"]
RUN echo "#!/bin/bash \n dojo build app --feature baseUrl=$baseUrl -m dev -w -s --port 80"> ./entrypoint.sh
RUN chmod +x ./entrypoint.sh
# Run the generated shell script.
ENTRYPOINT ["./entrypoint.sh"]
, и я передаю переменную среды во время выполнения, как показано ниже, при запуске докера в локальном режиме.
docker run -it --name dojoapplication -p 80:80 -e baseUrl=http://url.com:8080/ dojoImage:v1
Но если я упоминаюENV baseUrl = http://url.com:8080/ (по умолчанию) в файле docker compose, тогда он принимает и работает правильно.