我正在阅读 TestDriven.io 教程“AWS 上的可扩展 FastAPI 应用程序”中的“部署”章节:
https://testdriven.io/courses/scalable-fastapi-aws/deployment/
我刚刚创建了 Docker 映像文件,用于为应用程序构建和推送 Docker 映像。当我提交代码并且管道运行时,Dockerfiles 第一个 RUN 命令失败,该命令仅安装 AWS CLI、Python 和 Poetry。结果是“错误:作业失败:退出代码 28”。
Dockerfile 中失败的命令是:
RUN apk --no-cache add \
binutils \
curl \
&& curl -sL https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub \
&& curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-${GLIBC_VER}.apk \
&& curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-bin-${GLIBC_VER}.apk \
&& apk add --no-cache \
glibc-${GLIBC_VER}.apk \
glibc-bin-${GLIBC_VER}.apk \
&& curl -sL https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip \
&& unzip awscliv2.zip \
&& aws/install \
&& rm -rf \
awscliv2.zip \
aws \
/usr/local/aws-cli/v2/*/dist/aws_completer \
/usr/local/aws-cli/v2/*/dist/awscli/data/ac.index \
/usr/local/aws-cli/v2/*/dist/awscli/examples \
&& apk --no-cache del \
binutils \
curl \
&& rm glibc-${GLIBC_VER}.apk \
&& rm glibc-bin-${GLIBC_VER}.apk \
&& rm -rf /var/cache/apk/*
我通过谷歌搜索“退出代码 28”发现了一些不同的结果,但我不确定哪一个适用以及如何解决这个问题。有其他人完成了这个教程,并且可以提供一些见解吗?
curl 中的退出代码 28 表示“操作超时”(请参阅https://everything.curl.dev/usingcurl/returns)。今天,当 gitlab 上的 docker 镜像尝试连接到互联网时,例如在执行
apt-get install
时,我也看到了类似的错误。但它并不是真正可重现的,每次尝试都发生在不同的连接上。
虽然我在 Twitter 上找不到能够证实这一点的人,但我怀疑 gitlab 今天遇到了一些问题。也许你稍后尝试一下就会成功。
我假设您复制并粘贴了教程中的内容。当我执行该步骤时,它对我有用,因此这些命令中没有真正的错误。
我又运行了该作业两次:每次,它都在脚本中进一步发展,最终到达结束,它通过了,而我没有更改脚本中的任何内容。