Docker。如何在 NodeJs 容器中设置第三方环境变量?

Docker. How to set 3rd party environment variable in a NodeJs container?

我正在尝试在容器内设置 Oracle 环境变量。

我相信它不是 运行ning,因为文件在 OS.

上不可用

有人能帮忙吗?

非常感谢

FROM node:lts-alpine
RUN mkdir -p /usr/src/app
COPY ./ /usr/src/app

WORKDIR /usr/src/app
RUN export LD_LIBRARY_PATH=/usr/src/app/instantclient_21_5:$LD_LIBRARY_PATH

CMD [ \"npm\", \"run\", \"start\" ]

当 运行 连接 bash 容器时。我尝试从环境变量中执行 运行 命令。未成功。

尝试在 RUN 语句中设置环境变量没有任何意义:RUN 语句中的命令在子 shell 中执行,当它们执行时退出是完整的,所以 export LD_LIBRARY_PATH... 的效果在 RUN 语句完成执行后不可见。

Docker 提供了一个 ENV 指令来设置环境变量,例如:

FROM node:lts-alpine
RUN mkdir -p /usr/src/app
COPY ./ /usr/src/app

WORKDIR /usr/src/app
ENV LD_LIBRARY_PATH=/usr/src/app/instantclient_21_5

CMD [ "npm", "run", "start" ]

请注意,这只能用于设置静态值(也就是说,您不能在值中包含另一个环境变量的值——您不能写ENV LD_LIBRARY_PATH=/usr/src/app/instantclient_21_5:$LD_LIBRARY_PATH)。那应该没问题,因为在这种情况下 LD_LIBRARY_PATH 最初应该未设置。

(此外,您需要停止转义 CMD 指令中的引号。)