Windows 10 Docker Desktop执行RUN apk add openjdk17-jre报错问题
Docker构建错误解决思路
问题详情
我的Dockerfile内容如下:
FROM OURINTERNALREPO/xxxxx/alpine USER root RUN apk add --update RUN apk add curl RUN adduser -D -u 4001 appusr RUN mkdir /app RUN chown -R appusr:appusr /app RUN apk add openjdk17-jre USER appusr WORKDIR /app
在Ubuntu服务器上执行以下命令可正常构建:
docker build -t testimage .
但在Windows 10的Docker Desktop上执行相同命令时,出现如下错误:
=> ERROR [7/8] RUN apk add openjdk17-jre 28.7s ------ > [7/8] RUN apk add openjdk17-jre: #10 0.521 (1/25) Installing java-common (0.5-r0) #10 5.526 ERROR: java-common-0.5-r0: temporary error (try again later) #10 5.526 (2/25) Installing libffi (3.4.4-r0) #10 10.53 (3/25) Installing p11-kit (0.24.1-r1) #10 10.53 ERROR: libffi-3.4.4-r0: temporary error (try again later) #10 12.51 (4/25) Installing libtasn1 (4.19.0-r0) #10 12.56 (5/25) Installing p11-kit-trust (0.24.1-r1) #10 12.73 (6/25) Installing java-cacerts (1.0-r1) #10 12.85 (7/25) Installing openjdk17-jre-headless (17.0.6_p10-r0) #10 26.62 (8/25) Installing libxau (1.0.10-r0) #10 26.65 (9/25) Installing libmd (1.0.4-r0) #10 26.69 (10/25) Installing libbsd (0.11.7-r0) #10 26.73 (11/25) Installing libxdmcp (1.1.4-r0) #10 26.76 (12/25) Installing libxcb (1.15-r0) #10 26.84 (13/25) Installing libx11 (1.8.4-r0) #10 27.09 (14/25) Installing libxext (1.3.5-r0) #10 27.14 (15/25) Installing libxi (1.8-r0) #10 27.18 (16/25) Installing libxrender (0.9.11-r0) #10 27.22 (17/25) Installing libxtst (1.2.4-r0) #10 27.26 (18/25) Installing alsa-lib (1.2.8-r0) #10 27.39 (19/25) Installing libbz2 (1.0.8-r4) #10 27.50 (20/25) Installing libpng (1.6.38-r0) #10 27.56 (21/25) Installing freetype (2.12.1-r0) #10 27.67 (22/25) Installing giflib (5.2.1-r2) #10 27.73 (23/25) Installing libjpeg-turbo (2.1.4-r0) #10 27.84 (24/25) Installing lcms2 (2.14-r0) #10 27.98 (25/25) Installing openjdk17-jre (17.0.6_p10-r0) #10 28.32 Executing busybox-1.35.0-r29.trigger #10 28.32 Executing ca-certificates-20220614-r4.trigger #10 28.39 2 errors; 203 MiB in 43 packages ------ executor failed running [/bin/sh -c apk add openjdk17-jre]: exit code: 2
解决思路
- 重试构建:错误提示"temporary error"大概率是临时网络波动导致,直接重新执行
docker build -t testimage .即可。 - 更换Alpine镜像源:Windows环境下可能访问默认源不稳定,在Dockerfile的
RUN apk add --update前添加更换国内源的命令(注意替换对应Alpine版本,比如v3.17):RUN echo -e "https://mirrors.aliyun.com/alpine/v3.17/main/\nhttps://mirrors.aliyun.com/alpine/v3.17/community/" > /etc/apk/repositories - 检查Docker网络设置:打开Docker Desktop的设置,切换到「Resources」→「Network」,检查是否开启了不必要的代理,尝试关闭代理后重新构建;也可以切换到Windows容器模式再切回Linux容器,重置网络环境。
- 优化Dockerfile的apk命令:将多个apk相关的RUN命令合并,同时添加
--no-cache参数避免缓存问题,减少镜像层数的同时提升稳定性:RUN apk add --no-cache curl openjdk17-jre - 更新基础镜像:在Windows终端执行
docker pull OURINTERNALREPO/xxxxx/alpine,拉取最新的内部Alpine基础镜像,避免旧镜像的源配置过期。
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

