首页 > 解决方案 > jenkins作业运行时如何为nodejs项目创建.env文件

问题描述

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

我是 DevOps 的新手

这是詹金斯的工作。

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

标签: node.jsjenkinsdotenv

解决方案


为什么要使用 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`

推荐阅读