如何在 Jenkins Job 运行时为 nodejs 项目创建 .env 文件



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

我是DevOps的新手

这是詹金斯的工作。

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

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

最新更新