Ubuntu 18.04 WSL2环境下Docker镜像构建失败求助
问题:Docker构建RUN阶段安装mysql-client失败
本地使用Docker Desktop,基于Ubuntu 18.04版本的WSL2发行版构建Docker镜像时,基础镜像拉取成功,但在RUN执行apk安装mysql-client步骤失败,尝试多种方案未解决,相关文件及日志如下:
Dockerfile内容
FROM alpine:3.14 RUN apk add --no-cache mysql-client ENTRYPOINT ["mysql"]
错误日志
root@LAPTOP-BOSTG8L5:/home/abilash/alpine1# docker build . [+] Building 14.4s (5/5) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 118B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/alpine:3.14 3.3s => [1/2] FROM docker.io/library/alpine:3.14@sha256:4c869a63e1b7c0722fed1e402a6466610327c3b83bdddb94bd94fb71da7f638a 0.7s => => resolve docker.io/library/alpine:3.14@sha256:4c869a63e1b7c0722fed1e402a6466610327c3b83bdddb94bd94fb71da7f638a 0.0s => => sha256:dd53f409bf0bd55eac632f9e694fd190244fef5854a428bf3ae1e2b636577623 1.47kB / 1.47kB 0.0s => => sha256:c7ed990a2339ee598662849de4f56e2241399f5a32340c8c4a7bbd5378a12b5f 2.83MB / 2.83MB 0.6s => => sha256:4c869a63e1b7c0722fed1e402a6466610327c3b83bdddb94bd94fb71da7f638a 1.64kB / 1.64kB 0.0s => => sha256:92d13cc58a46e012300ef49924edc56de5642ada25c9a457dce4a6db59892650 528B / 528B 0.0s => => extracting sha256:c7ed990a2339ee598662849de4f56e2241399f5a32340c8c4a7bbd5378a12b5f 0.1s => ERROR [2/2] RUN apk add --no-cache mysql-client 10.3s ------ > [2/2] RUN apk add --no-cache mysql-client: #4 0.293 fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz #4 5.299 fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz #4 5.299 WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.14/main: temporary error (try again later) #4 10.30 WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.14/community: temporary error (try again later) #4 10.30 ERROR: unable to select packages: #4 10.30 mysql-client (no such package): #4 10.30 required by: world[mysql-client] ------ executor failed running [/bin/sh -c apk add --no-cache mysql-client]: exit code: 1
解决思路
- 修复网络访问问题:日志显示无法访问Alpine官方源,优先排查WSL2网络连通性。可在WSL终端执行
ping dl-cdn.alpinelinux.org测试连通;也可在Dockerfile中替换为国内镜像源后再安装:FROM alpine:3.14 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk add --no-cache mysql-client ENTRYPOINT ["mysql"] - 替换为兼容包名:Alpine部分版本中,MySQL客户端由MariaDB提供,可尝试安装
mariadb-client(同样包含mysql命令):FROM alpine:3.14 RUN apk add --no-cache mariadb-client ENTRYPOINT ["mysql"] - 更新基础镜像版本:Alpine 3.14属于旧版本,官方源可能停止维护或访问不稳定,换成较新的稳定版本(如
alpine:3.18或alpine:latest)重新构建。
内容的提问来源于stack exchange,提问作者Abilash Krishnan
相关产品推荐
相关产品推荐

