无法将 Docker 镜像推送到 GitLab 容器注册表 (Monorepo)

问题描述 投票:0回答:1

我有一个 Nx Monorepo,其中包含多个 NestJS API。我正在尝试将其中一个 API 的 Docker 映像推送到 GitLab 容器注册表,但由于似乎超时而不断失败。

这是我的项目结构的简单介绍:

单一仓库

--package.json

--应用程序

----app-api

------Dockerfile

这是我的 app-api 的 Dockerfile

FROM node:18-alpine

WORKDIR /app

COPY package*.json ./

RUN npm ci

COPY . .

EXPOSE 4002

CMD ["npm", "run", "start:app-api"]

我在本地构建图像

docker build -t registry.gitlab.com/<group>/<project>/app-api -f apps/app-api/Dockerfile .

这样就成功了。但是,当我尝试推送到 GitLab 容器注册表时:

docker push registry.gitlab.com/<group>/<project>/app-api

我得到以下错误输出:

Using default tag: latest
The push refers to repository [registry.gitlab.com/<group>/<project>/app-api]
c4b377e26346: Pushing [==================================================>]  2.276GB/2.276GB
a6ddf7465691: Layer already exists
971cfc403c58: Layer already exists 
9c2c8f3cfe79: Layer already exists 
3fecce352908: Layer already exists 
1da03ac21ec8: Layer already exists 
926b35a05f1d: Layer already exists 
d4fc045c9e3a: Layer already exists 
use of closed network connection

然后我可以在 GitLab 的容器注册表中看到该映像,但它有 0 个标签并显示“此映像没有活动标签。 与此图像相关的最后一个标签最近已被删除。作为常规垃圾收集过程的一部分,该空图像和任何相关数据将被自动删除。如果您有任何疑问,请联系您的管理员。”

docker dockerfile gitlab-ci github-container-registry
1个回答
0
投票

您需要在构建图像后对其进行标记。

docker tag [Tag name] registry.gitlab.com:4002/fedora/httpd: version1.0
© www.soinside.com 2019 - 2024. All rights reserved.