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

时间:2019-06-07 12:22:46

标签: node.js jenkins dotenv

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

我对DevOps完全陌生

这是詹金斯的工作。

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

1 个答案:

答案 0 :(得分:0)

为什么要使用jenkins生成env文件?

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

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来管理环境变量。

如果在构建映像时确实要创建环境文件,则可以在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`