docker buildx制作镜像报错是为什么啊?

我自己电脑是apple m1 pro芯片,也就是arm64v8,现在想给自己电脑制作一个镜像,本地制作速度太慢了,我买了个香港的服务器,是amd64的。

我的Dockerfile

FROM alpine
RUN apk update
RUN apk add vim
RUN apk add curl
RUN apk add nginx
RUN apk add php
RUN apk add php8-dom
RUN apk add php8-ctype
RUN apk add php8-curl
RUN apk add php8-fpm
RUN apk add php8-gd
RUN apk add php8-intl
RUN apk add php8-json
RUN apk add php8-mbstring
RUN apk add php8-pecl-mcrypt
RUN apk add php8-mysqlnd
RUN apk add php8-opcache
RUN apk add php8-pdo
RUN apk add php8-pdo_mysql
RUN apk add php8-posix
RUN apk add php8-session
RUN apk add php8-xml
RUN apk add php8-iconv
RUN apk add php8-phar
RUN apk add php8-openssl
RUN apk add php8-zip
RUN apk add php8-pecl-ssh2
RUN apk add php8-zlib
RUN apk add php8-redis
RUN apk add php8-pecl-memcached
RUN apk add php8-imap
RUN apk add php8-simplexml
RUN apk add php8-xmlreader
RUN apk add php8-xmlwriter
RUN apk add php8-fileinfo
RUN apk add php8-tokenizer
RUN apk add php8-bcmath
RUN apk add tzdata
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
RUN apk del tzdata
RUN rm -rf /var/cache/apk/*

我在服务器试过了docker build -t demo .是没有问题的,说明Dockerfile没问题。

然后我的构建器也是支持arm64v8的。

NAME/NODE          DRIVER/ENDPOINT             STATUS  PLATFORMS
ecstatic_curran    docker-container                    
  ecstatic_curran0 unix:///var/run/docker.sock running linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/amd64/v4, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
mybuilder *        docker-container                    
  mybuilder0       unix:///var/run/docker.sock running linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/amd64/v4, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
default            docker                              
  default          default                     running linux/amd64, linux/386, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/arm/v7, linux/arm/v6

我的编译命令

sudo docker buildx build --platform linux/arm64 -t hahaha/self-alpine-nginx-php-fpm:php8 --push .

报错

#36 5.145 ERROR: unable to select packages:
#36 5.402   php8-dom (no such package):
#36 5.402     required by: world[php8-dom]
------
Dockerfile:7
--------------------
   5 |     RUN apk add nginx
   6 |     RUN apk add php
   7 | >>> RUN apk add php8-dom
   8 |     RUN apk add php8-ctype
   9 |     RUN apk add php8-curl
--------------------
error: failed to solve: process "/bin/sh -c apk add php8-dom" did not complete successfully: exit code: 1
阅读 2.3k
1 个回答

是不是你源的问题,看看服务器上的源和你本地的源,是不是不一样,报错里写了,没有找到php8-dom 这个包吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题