1

我有一个 nodejs MERN 堆栈项目。我已经在 docker 容器中的服务器 Linux 实例上配置了 Jenkins 作业。我有一份詹金斯的工作来提取代码并构建应用程序。我使用 .env 文件提供了一些变量和凭据,如何在 Jenkins 作业运行时创建此文件。因为我想对 nodejs 项目内容进行 dockerize 并在其他地方运行它。

我是 DevOps 的新手

这是詹金斯的工作。

我想参数化 Jenkins 作业,它应该在我的 nodejs 项目的根目录下创建一个 .env 文件。

4

1 回答 1

0

为什么要使用 jenkins 生成 envfile?

您可以为每个环境手动创建环境文件,并在运行映像时将它们推送到映像中,例如:

sudo docker run -d --restart=always  --name=${appName}  --env-file ${envfilepath}/${envfile}.env -p ${externe appPort}:${interne appPort} ${your registry}/${appName}:${your tag}

您还可以将 rundeck 与 cron 组合并开始您的工作,kubernetes 用于管理您的 env 变量。

如果您真的想在构建映像时创建 envfile,请在 dockerfile 中执行以下操作:

################################ builder
FROM ${BUILDER_IMAGE} as builder
RUN npm i
RUN npm run `command to create envfile`
# see content of your file
RUN cat `path of your envfile / your envfile`

################################ final build
FROM ${BUILDER_IMAGE} 
COPY --from=builder `path of your envfile / your envfile` `definitive path of your envfile / definitive envfile`

如果你想从你的 docker 镜像中导出你的文件

(docker run -t --rm --entrypoint cat $(IMAGE) `path of your envfile / your envfile`) > `local path of your envfile / local envfile`
于 2019-06-07T13:29:31.327 回答