Docker 镜像在 GitLab 管道中拉取成功,但在 AWS Lightsail 上找不到镜像

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

我正在运行 GitLab CI/CD 管道,将 Docker 映像从 GitLab 的容器注册表部署到

AWS Lightsail instance
。管道日志显示映像已成功拉取,并且 Docker 命令运行没有错误。但是,当我登录 Lightsail 实例时,找不到拉取的映像。

这是我的 GitLab CD 工作的相关部分:

echo "$DOCKER_ACCESS_KEY" | docker login -u "$DOCKER_USERNAME" --password-stdin https://registry.gitlab.com/ &&
docker pull registry.gitlab.com/repo/backend-app:develop &&
docker tag registry.gitlab.com/repo/backend-app:develop backend-app:develop &&
docker run --name backend-app -p 80:8080 -d registry.gitlab.com/repo/backend-app:develop
EOF

管道日志显示镜像拉取成功。 Docker 标记镜像时没有错误。 没有容器正在运行,并且当我在实例内使用 docker images 和 docker ps -a 检查时,该映像在 Lightsail 中似乎不可用。

这是显示图像拉取过程的管道日志片段:

a2318d6c47ec: Pull complete
99a31bbbcd61: Pull complete
24da4c394c8b: Pull complete
fe7649cc1e2b: Pull complete
b16c49eb2a3e: Pull complete
f69474871ffa: Pull complete
18447de3a64d: Pull complete
c996151d738b: Pull complete
Digest: sha256:83d9c29bd5546a099153a81d52f7051b14b0db2792ad7908ed70b8be3971e142
Status: Downloaded newer image for registry.gitlab.com/repo/backend-app:develop
registry.gitlab.com/repo/backend-app:develop
b93fac7f2b1576d4885debd7bb9d9e779ae4731cd07fe254e32e183436a0a012

日志表明图像已成功拉取并标记,但是当我通过 SSH 连接到 Lightsail 实例后,运行时图像不会显示:

docker images
docker ps -a

有人遇到过这个问题或者知道为什么图像似乎在 Lightsail 实例上消失了吗?

如有任何帮助,我们将不胜感激!

docker ssh amazon-lightsail gitlab-ci.yml
1个回答
0
投票

Gitlab 中的 CICD 作业与 aws lightsail 运行在不同的网络上,因此在拉取映像之前,您必须先在

ssh
内进行
aws lightsail instance

ssh -i /path/to/key.pem ubuntu@lightsail-instance-ip << EOF
echo "$DOCKER_ACCESS_KEY" | docker login -u "$DOCKER_USERNAME" --password-stdin https://registry.gitlab.com/ &&
docker pull registry.gitlab.com/repo/backend-app:develop &&
docker tag registry.gitlab.com/repo/backend-app:develop backend-app:develop &&
docker run --name backend-app -p 80:8080 -d backend-app:develop
EOF
© www.soinside.com 2019 - 2024. All rights reserved.