TestDriven.io 教程 "Scalable FastAPI Applications on AWS":添加 Docker CI/CD 图像失败,退出代码为 28
TestDriven.io Tutorial "Scalable FastAPI Applications on AWS": adding Docker CI/CD image fails with exit code 28
我正在阅读“部署”一章中的 TestDriven.io 教程“AWS 上的可扩展 FastAPI 应用程序”:
https://testdriven.io/courses/scalable-fastapi-aws/deployment/
我刚刚创建了 Docker 图像文件,用于为应用程序构建和推送 Docker 图像。当我提交代码并且管道运行时,它在 Dockerfiles first 运行 命令上失败,该命令仅安装 AWS CLI、Python 和 Poetry。结果是“错误:作业失败:退出代码 28”。
Docker文件中失败的命令是:
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 今天有一些问题。也许如果你稍后尝试它会起作用。
我假设您复制并粘贴了教程中的内容。当我执行该步骤时它对我有用,因此这些命令中没有真正的错误。
我又 运行 重复了两次作业:每次,它都在脚本中走得更远一点,最终到最后,它通过了,我没有改变脚本中的任何内容。
我正在阅读“部署”一章中的 TestDriven.io 教程“AWS 上的可扩展 FastAPI 应用程序”:
https://testdriven.io/courses/scalable-fastapi-aws/deployment/
我刚刚创建了 Docker 图像文件,用于为应用程序构建和推送 Docker 图像。当我提交代码并且管道运行时,它在 Dockerfiles first 运行 命令上失败,该命令仅安装 AWS CLI、Python 和 Poetry。结果是“错误:作业失败:退出代码 28”。
Docker文件中失败的命令是:
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 今天有一些问题。也许如果你稍后尝试它会起作用。
我假设您复制并粘贴了教程中的内容。当我执行该步骤时它对我有用,因此这些命令中没有真正的错误。
我又 运行 重复了两次作业:每次,它都在脚本中走得更远一点,最终到最后,它通过了,我没有改变脚本中的任何内容。