我想使用docker-compose构建一个镜像,镜像基于python3.8,makefile中为更新源并且apt update 和安装apt install -y gettext。当我执行docker-compose时,报了以下错误
Step 1/2 : FROM python:3.8
---> 3189819ced3e
Step 2/2 : RUN echo 'deb http://mirrors.aliyun.com/debian/ buster main non-free contrib\n deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib\n deb http://mirrors.aliyun.com/debian-security buster/updates main\n deb-src http://mirrors.aliyun.com/debian-security buster/updates main\n deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib\n deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib\n deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib\n deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib\n' > /etc/apt/sources.list && apt update && apt install -y gettext
---> Running in 210bbe8b7216
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Get:1 http://mirrors.aliyun.com/debian buster InRelease [121 kB]
Get:2 http://mirrors.aliyun.com/debian-security buster/updates InRelease [65.4 kB]
Get:3 http://mirrors.aliyun.com/debian buster-updates InRelease [51.9 kB]
Get:4 http://mirrors.aliyun.com/debian buster-backports InRelease [46.7 kB]
Get:5 http://mirrors.aliyun.com/debian buster/main Sources [7831 kB]
Get:6 http://mirrors.aliyun.com/debian buster/non-free Sources [85.9 kB]
Get:7 http://mirrors.aliyun.com/debian buster/contrib Sources [43.1 kB]
Get:8 http://mirrors.aliyun.com/debian buster/main amd64 Packages [7905 kB]
Get:9 http://mirrors.aliyun.com/debian buster/contrib amd64 Packages [51.0 kB]
Get:10 http://mirrors.aliyun.com/debian buster/non-free amd64 Packages [87.7 kB]
Get:11 http://mirrors.aliyun.com/debian-security buster/updates/main Sources [131 kB]
Get:12 http://mirrors.aliyun.com/debian-security buster/updates/main amd64 Packages [213 kB]
Get:13 http://mirrors.aliyun.com/debian buster-updates/non-free Sources [716 B]
Get:14 http://mirrors.aliyun.com/debian buster-updates/main Sources [3716 B]
Get:15 http://mirrors.aliyun.com/debian buster-updates/main amd64 Packages [7868 B]
Get:16 http://mirrors.aliyun.com/debian buster-updates/non-free amd64 Packages [604 B]
Get:17 http://mirrors.aliyun.com/debian buster-backports/main Sources [301 kB]
Get:18 http://mirrors.aliyun.com/debian buster-backports/non-free Sources [7036 B]
Get:19 http://mirrors.aliyun.com/debian buster-backports/contrib Sources [4536 B]
Get:20 http://mirrors.aliyun.com/debian buster-backports/non-free amd64 Packages [23.8 kB]
Get:21 http://mirrors.aliyun.com/debian buster-backports/contrib amd64 Packages [7652 B]
Ign:22 http://mirrors.aliyun.com/debian buster-backports/main amd64 Packages
Get:22 http://mirrors.aliyun.com/debian buster-backports/main amd64 Packages [341 kB]
Err:22 http://mirrors.aliyun.com/debian buster-backports/main amd64 Packages
File has unexpected size (340772 != 340836). Mirror sync in progress? [IP: 118.116.3.240 80]
Hashes of expected file:
- Filesize:340836 [weak]
- SHA256:c5c1085ac286f0469391d2f673d98b92953c7b05ad150e0836a940d1564a4e41
Release file created at: Wed, 22 Jul 2020 14:13:49 +0000
Fetched 17.0 MB in 4s (4160 kB/s)
Reading package lists...
E: Failed to fetch http://mirrors.aliyun.com/debian/dists/buster-backports/main/binary-amd64/Packages.xz File has unexpected size (340772 != 340836). Mirror sync in progress? [IP: 118.116.3.240 80]
Hashes of expected file:
- Filesize:340836 [weak]
- SHA256:c5c1085ac286f0469391d2f673d98b92953c7b05ad150e0836a940d1564a4e41
Release file created at: Wed, 22 Jul 2020 14:13:49 +0000
E: Some index files failed to download. They have been ignored, or old ones used instead.
ERROR: Service 'shiyanlou' failed to build: The command '/bin/sh -c echo 'deb http://mirrors.aliyun.com/debian/ buster main non-free contrib\n deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib\n deb http://mirrors.aliyun.com/debian-security buster/updates main\n deb-src http://mirrors.aliyun.com/debian-security buster/updates main\n deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib\n deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib\n deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib\n deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib\n' > /etc/apt/sources.list && apt update && apt install -y gettext' returned a non-zero code: 100
github上似乎有人遇到同样的问题,但是是官方镜像源出问题了。add-apt-repository failed due to "File has unexpected size",有人知道该怎么弄吗?是不是阿里云的镜像源同步出问题了,需要回滚??
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的信息,看起来您在尝试使用Dockerfile通过docker-compose
构建一个基于Python 3.8的镜像,并且希望将APT源更改为阿里云的镜像源以加速包下载。但是,您遇到了错误,但未具体说明错误内容。不过,从您的描述中,我可以推测可能是由于Dockerfile中的命令执行方式或格式问题导致的。
首先,请确保您的Dockerfile中相关部分的命令格式正确。对于修改APT源并更新的操作,通常建议将操作分为多行以提高可读性和避免常见错误。以下是一个改进后的示例:
FROM python:3.8
# 更新apt源为阿里云镜像源
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list \
&& sed -i 's/security.debian.org/mirrors.aliyun.com/debian-security/g' /etc/apt/sources.list
# 更新软件包列表并安装gettext
RUN apt-get update && apt-get install -y --no-install-recommends gettext \
&& rm -rf /var/lib/apt/lists/*
这里做了几处修改: 1. 使用sed
命令直接在原sources.list
文件中替换URL,而不是重定向输出到该文件。这样可以避免可能的文件权限问题或覆盖原有重要配置。 2. 分成多行执行,便于阅读和调试。 3. 在安装完软件包后,清理/var/lib/apt/lists/
目录来减小镜像大小。 4. 添加了--no-install-recommends
参数以避免安装推荐的、非必要的软件包,进一步精简镜像。
请尝试修改您的Dockerfile并重新运行docker-compose up --build
(假设您是用此命令构建和启动服务)。如果还有其他具体的错误信息,请提供详细错误日志,以便进行更精确的诊断。
你好,我是AI助理
可以解答问题、推荐解决方案等