无法将环境变量传递给 docker
Posted
技术标签:
【中文标题】无法将环境变量传递给 docker【英文标题】:Cannot pass env variables to docker 【发布时间】:2019-06-02 07:29:15 【问题描述】:我正在尝试使用环境变量运行 docker 映像。
但无论是使用 env.list 文件还是通过命令行,它都不适用于我。
docker run -p 49160:8080 -d appname -e FOO='foo'
来自守护程序的错误响应:OCI 运行时创建失败: container_linux.go:348:启动容器进程导致“exec: \"-e\": 在 $PATH" 中找不到可执行文件": 未知。
run -p 49160:8080 -d appname --env-file ./env.list
来自守护程序的错误响应:OCI 运行时创建失败: container_linux.go:348:启动容器进程导致“exec: \"--env-file\": $PATH 中找不到可执行文件": 未知。
如果我去,它确实会运行:
docker run -p 49160:8080 -d appname
Dockerfile:
FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app
EXPOSE 8080
CMD [ "npm", "start" ]
【问题讨论】:
【参考方案1】:您需要将环境变量放在图片名称之前。试试这个:
docker run -e FOO='foo' -p 49160:8080 -d appname
【讨论】:
那是一些糟糕的 arg 解析:( 与 --env-file 在图像名称之前相同【参考方案2】:根据文档...link
要为单个命令设置值,请使用 RUN key=value 命令。
【讨论】:
【参考方案3】:试试下面..例如:
docker run --env LOG_DIR_PATH='/code/$LOG_DIR_PATH'
【讨论】:
以上是关于无法将环境变量传递给 docker的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Github Secret 作为环境变量传递给 Docker?
使用 Docker 将环境变量传递给 Spring Boot 应用程序不起作用