gpt4 book ai didi

docker - 构建器的 Gitlab CI 拉取访问被拒绝,存储库不存在或可能需要 'docker login'

转载 作者:行者123 更新时间:2023-12-02 18:29:24 25 4
gpt4 key购买 nike

我有下一个构建脚本

echo 'Login'
sudo docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY

echo 'Build the project'
sudo docker build -t builder -f BuilderDockerfile .

echo 'Build the deployment containers'
sudo docker build -t $CI_REGISTRY_IMAGE/server:dev -f ApiDockerfile . &
wait

echo 'Push the new images'
sudo docker push $CI_REGISTRY_IMAGE/server:dev &
wait

BuilderDockerfile 在哪里

FROM microsoft/dotnet:2.1-sdk as dotnet_build

RUN echo 'BuilderDockerfile preparations'
WORKDIR /usr/src/app
COPY ./All_In .
RUN dotnet restore
RUN dotnet publish -c Release

FROM alpine:3.5
COPY --from=dotnet_build /usr/src/app /usr/src/dotnet_app

ApiDockerfile 是

FROM microsoft/dotnet:2.1-aspnetcore-runtime

RUN echo 'ApiDockerfile preparations'
COPY --from=builder /usr/src/dotnet_app /usr/src/app

RUN echo 'ApiDockerfile run'
WORKDIR /usr/src/app/All_In.Server/bin/Release/netcoreapp2.1
CMD [ "dotnet", "./All_In.Server.dll" ]

我还配置了 gitlab-runner 并选择了 shell 执行器。结果在这个构建过程中我有下一个输出

Running with gitlab-runner 11.1.0 (081978aa)
on all-in-server 3ddb5910
Using Shell executor...
Running on all-in-server...
Fetching changes...
HEAD is now at bb44430 build.sh modified
Checking out bb444304 as master...
Skipping Git submodules setup
$ sh ./build.sh
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
Sending build context to Docker daemon 85.5kB

Step 1/7 : FROM microsoft/dotnet:2.1-sdk as dotnet_build
2.1-sdk: Pulling from microsoft/dotnet
55cbf04beb70: Pulling fs layer
1607093a898c: Pulling fs layer
9a8ea045c926: Pulling fs layer
d4eee24d4dac: Pulling fs layer
b1bce9049f44: Pulling fs layer
66482cff2298: Pulling fs layer
083dc249fbc8: Pulling fs layer
d4eee24d4dac: Waiting
b1bce9049f44: Waiting
66482cff2298: Waiting
083dc249fbc8: Waiting
9a8ea045c926: Verifying Checksum
9a8ea045c926: Download complete
55cbf04beb70: Verifying Checksum
55cbf04beb70: Download complete
b1bce9049f44: Verifying Checksum
b1bce9049f44: Download complete
1607093a898c: Verifying Checksum
1607093a898c: Download complete
55cbf04beb70: Pull complete
1607093a898c: Pull complete
9a8ea045c926: Pull complete
66482cff2298: Verifying Checksum
66482cff2298: Download complete
d4eee24d4dac: Verifying Checksum
d4eee24d4dac: Download complete
083dc249fbc8: Verifying Checksum
083dc249fbc8: Download complete
d4eee24d4dac: Pull complete
b1bce9049f44: Pull complete
66482cff2298: Pull complete
083dc249fbc8: Pull complete
Digest: sha256:2cb90bf0a775178967c58473ce5b5689de30221b9c4264b22f35d5e111e01d0a
Status: Downloaded newer image for microsoft/dotnet:2.1-sdk
---> 9e243db15f91
Step 2/7 : WORKDIR /usr/src/app
---> Running in d9ce0c6da73e
Removing intermediate container d9ce0c6da73e
---> a1d28ea60025
Step 3/7 : COPY ./All_In .
COPY failed: stat /var/lib/docker/tmp/docker-builder533733656/All_In: no such file or directory
Sending build context to Docker daemon 85.5kB

Step 1/4 : FROM microsoft/dotnet:2.1-aspnetcore-runtime
2.1-aspnetcore-runtime: Pulling from microsoft/dotnet
be8881be8156: Pulling fs layer
f854db899319: Pulling fs layer
4591fd524b8e: Pulling fs layer
65f224da8749: Pulling fs layer
65f224da8749: Waiting
4591fd524b8e: Verifying Checksum
4591fd524b8e: Download complete
f854db899319: Verifying Checksum
f854db899319: Download complete
be8881be8156: Verifying Checksum
be8881be8156: Download complete
65f224da8749: Verifying Checksum
65f224da8749: Download complete
be8881be8156: Pull complete
f854db899319: Pull complete
4591fd524b8e: Pull complete
65f224da8749: Pull complete
Digest: sha256:a43b729b84f918615d4cdce92a8bf59e3e4fb2773b8491a7cf4a0d728886eeba
Status: Downloaded newer image for microsoft/dotnet:2.1-aspnetcore-runtime
---> fcc3887985bb
Step 2/4 : COPY --from=builder /usr/src/dotnet_app /usr/src/app
invalid from flag value builder: pull access denied for builder, repository does not exist or may require 'docker login'
The push refers to repository [registry.gitlab.com/crispried/all-in-backend/server]
An image does not exist locally with the tag: registry.gitlab.com/crispried/all-in-backend/server
Job succeeded

所以,第一个错误是 复制失败:stat/var/lib/docker/tmp/docker-builder533733656/All_In:没有那个文件或目录

但是,我不明白为什么会出现。结果是

sudo docker build -t builder -f BuilderDockerfile .

第二个是来自标志值构建器的无效:构建器的拉取访问被拒绝,存储库不存在或可能需要“docker login” 推送指的是存储库 [registry.gitlab.com/crispried/all-in-backend/server] 本地不存在带有标签的图像:registry.gitlab.com/crispried/all-in-backend/server

我相信这是第一个错误的结果,对吧?任何想法如何解决它?在我使用较旧的 netcore 图像的另一个项目中,类似的配置对我很有用。我是否遗漏了配置中的某些内容?

最佳答案

问题出在这行构建 Step 3/7 : COPY ./All_In .

我错过了在这个项目中我的构建脚本在我的项目根文件夹中。所以,实际上我的项目中没有 ./All_In 文件夹。在我的案例中,解决方案只是修改 BuilderDockerfile:

改变

COPY ./All_In .

COPY . .

作为结论 - 当您从其他项目复制一些脚本时要小心。

关于docker - 构建器的 Gitlab CI 拉取访问被拒绝,存储库不存在或可能需要 'docker login',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51715797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com