使用Shell脚本在运行时读取环境变量

时间:2018-10-03 09:17:47

标签: docker docker-compose dockerfile

这里我正在尝试使用shell脚本,但是如果我未在docker文件中设置默认ENV,则不会从环境获取值。您能告诉我如何在运行时读取环境变量,而不是在docker compose期间读取环境变量。以下是我的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时在如下所示的运行时传递环境变量。

 docker run -it --name  dojoapplication -p 80:80 -e baseUrl=http://url.com:8080/ dojoImage:v1

但是,如果我在docker compose文件中提到ENV baseUrl = http://url.com:8080/(默认设置),则说明该文件可以正常工作。

0 个答案:

没有答案