我有一个nodejs MERN堆栈项目。我已经在Docker容器中的服务器Linux实例上配置了Jenkins作业。我有一个詹金斯工作来拉代码并构建应用程序。 我已经使用.env文件提供了一些变量和凭据,而在Jenkins作业运行时如何创建该文件。因为我想对nodejs项目内容进行Docker化并在其他地方运行。
我对DevOps完全陌生
这是詹金斯的工作。
我想参数化Jenkins作业,它应该在我的nodejs项目的根目录下创建一个.env文件。
答案 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`