如何在 jenkins 作业 运行 时为 nodejs 项目创建 .env 文件

how to create .env file for nodejs project while jenkins job is running

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

我对 DevOps 完全陌生

这是 Jenkins 的工作。

我想参数化 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}

您还可以将 运行deck 组合到 cron 并开始您的工作,kubernetes 用于管理您的环境变量。

如果您真的想在构建映像时创建 envfile,在 docker 文件中,您可以这样做:

################################ 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`