无法将环境变量传递给Docker

时间:2019-01-07 15:57:24

标签: node.js docker environment-variables

我正在尝试使用env变量运行docker映像。

但是对于env.list文件或命令行而言,它对我不起作用。

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

来自守护程序的错误响应:OCI运行时创建失败:   container_linux.go:348:启动容器进程引起“执行:   \“-e \”:在$ PATH中找不到可执行文件“:未知。

run -p 49160:8080 -d appname --env-file ./env.list
  

来自守护程序的错误响应:OCI运行时创建失败:   container_linux.go:348:启动容器进程引起“执行:   \“-env文件\”:在$ 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 个答案:

答案 0 :(得分:7)

您需要将环境变量放在之前。试试这个:

def decorator(func):
    @functools.wraps(func)
    def wrapper_decorator(*args, **kwargs):
        x = 5 * 10
        value = func(*args, **kwargs)
        # Do something after
        return value
    return wrapper_decorator


@decorator
def mult(x):
   y = x/5
   print y #should print 10

答案 1 :(得分:0)

根据文档... link

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

答案 2 :(得分:0)

试试下面..例如:

docker run --env LOG_DIR_PATH='/code/${LOG_DIR_PATH}'