首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在构建码头映像时将meta.json中的版本号提交给git

在构建码头映像时将meta.json中的版本号提交给git
EN

Stack Overflow用户
提问于 2022-09-22 13:08:19
回答 1查看 34关注 0票数 1

我有一个应用程序运行作为前端和节点作为后端代码。在run公用文件夹中,我们有一个具有版本号的meta.json,每次我们运行npm运行构建时,它都会更新该文件中的版本号。我们使用这种方法,以确保网站总是显示新的版本,在数据库中,我们也更新版本号,如果两者不匹配,网站自动加载新版本。

我们正处于转移到Kubernetes的过程中,现在的问题是我们有一个用于反应的Dockerfile,我们有以下步骤

代码语言:javascript
运行
复制
FROM node:12.18.3 AS build

ENV CI=false
ENV WDS_SOCKET_PORT=0

WORKDIR /app

COPY ["package.json", "package-lock.json", "./"]

RUN npm install --production

COPY . .

RUN npm run build:development

FROM nginx:alpine

COPY --from=build /app/build /usr/share/nginx/html

COPY --from=build /app/nginx-custom.conf /etc/nginx/conf.d/default.conf

我们在azure管道中使用这个Dockerfile,并使用它构建一个映像,并将该对接器映像推送到Azure容器注册中心,并使用kubectl重新启动来提取该映像,并在AKS中重新启动部署。在从Dockerfile运行npm运行构建之后,我的meta.json文件将有更新的版本,我希望提交并将修改后的文件推送到azure,这样下次如果管道运行,它将有更新的版本号。

我已经做了我的POC在这个项目上,但无法找到任何容易遵循的步骤,我遇到了这个回购https://github.com/ShadowApex/docker-git-push,但不清楚如何正确地执行这个项目,任何帮助将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-22 13:33:20

它不会将Git添加到 docker 中,而是会向图像添加额外的层。

一旦映像构建完成了之后,您可以做的是将JSON复制到码头映像之外,并将其从CI机器推送到要管理的git或桶中。

命令,您可以使用

代码语言:javascript
运行
复制
docker create --name container_name 

Docker create将在不运行容器的情况下创建。

docker容器create (或速记: docker create)命令从指定的映像创建一个新容器,而不启动它。

在创建容器时,停靠守护进程在指定的映像上创建一个可写容器层,并为运行指定的命令做好准备。然后将容器ID打印到STDOUT。这类似于docker运行-d,除非容器从未启动。

因此,容器文件系统一旦运行命令,就可以将文件从docker复制到CI machine,就像这样简单。

码头副本命令

代码语言:javascript
运行
复制
docker cp container_name:/app/build/meta.json .

现在你有一个文件在CI机器上,你可以上传到Git现在或桶任何地方。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73815221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档