【问题标题】:commit version number in meta.json to git repo when building docker image构建 docker 镜像时将 meta.json 中的版本号提交到 git repo
【发布时间】:2022-09-22 21:41:58
【问题描述】:

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

我们正在转向 Kubernetes,现在我遇到的问题是我们有一个 Dockerfile 用于反应,其中我们有以下步骤

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 并使用它构建映像并将该 docker 映像推送到 Azure 容器注册表,并使用 kubectl restart 拉取该映像并在 AKS 中重新启动部署。在 npm run build 从 Dockerfile 之后,我的 meta.json 文件将更新版本,我想提交并将更改的文件推送到 azure repo,以便下次运行管道时它将更新版本号。

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

    标签: git docker azure-pipelines azure-aks azure-repos


    【解决方案1】:

    而不是添加吉特进入码头工人,它将为 docker 图像添加额外的层。

    一旦您的图像构建完成完全的之后你可以做的就是复制JSON在 docker 镜像之外并从CI机器到您要管理的 git 或存储桶。

    命令你可以使用

    docker create --name container_name 
    

    Docker create创造新的容器而不运行它。

    docker container create(或简写:docker create)命令从指定的镜像创建一个新容器,而不启动它。

    创建容器时,docker daemon 创建一个可写的 容器层覆盖指定图像并准备运行 指定的命令。然后将容器 ID 打印到 STDOUT。 这与 docker run -d 类似,只是容器从不启动。

    因此,一旦容器文件系统运行命令将文件从 docker 复制到CI 机器就那么简单。

    Docker 复制命令

    docker cp container_name:/app/build/meta.json .
    

    现在您在 CI 机器上有一个文件,您可以立即将其上传到 Git 或 Bucket 任何地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      • 2020-10-06
      相关资源
      最近更新 更多