我正在寻找以下问题的解决方案:
我们的团队在本地有常规的 3 个阶段(本地、暂存、生产)我们正在使用 docker-compose ,我想传递一个可以在 Dockerfile 中访问的文件 (.pem),这样我就可以运行 npm config set cafile
,这在生产或暂存中不需要。
这是我的 Dockerfile
FROM node
ARG COMPOSE_MODE
COPY ./package.json ./crt.pem /src/
#if COMPOSE_MODE exsist then set cert
RUN if ! [ "x$COMPOSE_MODE" = "x" ] ; then npm config set cafile /src/crt.pem ; fi
然而,这需要我将 crt.pem 交付给每个环境中的每个项目。他们是在构建期间可访问的 docker compose 中传递文件的一种方式。或者将 ssl 证书传递给本地 docker demon,它会自动将其插入/etc/ssl/certs。
感谢您的帮助!
最佳答案
试试这个
docker 文件
ARG PEM_PATH
COPY $PEM_PATH /src/
编写文件
services:
node:
build:
context: folder
args:
- PEM_PATH=${PEM_PATH}
用PEM_PATH=xxx.pem docker-compose build
调用它
关于Docker - 在构建期间可访问的配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53483357/