无法将环境变量传递给Docker

17

我正尝试使用环境变量运行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" ]
3个回答

29

您需要在镜像名称之前设置环境变量。 请尝试以下内容:

docker run -e FOO='foo' -p 49160:8080 -d appname

4
那是一些很糟糕的参数解析 :( - CpILL
1
在图像名称之前使用--env-file - wendro

0

根据文档...link

如果要为单个命令设置值,请使用RUN key=value command。


0
尝试以下操作,例如:
docker run --env LOG_DIR_PATH='/code/${LOG_DIR_PATH}'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接