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
指令中的引号。)
我正在尝试在容器内设置 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
指令中的引号。)