当我尝试在带有ARM安培的实例上运行docker容器时,我面临一个错误。当我在AMD上运行它时,它工作正常。
这似乎与处理器的类型有关,我不确定,但这是我唯一做的改变。
有人能帮忙吗?
错误:
ERROR [shopexample_nginx 2/5] RUN wget https://github.com/jwilder/dockerize/releases/download/v0.6.1/dockerize-alpi 1.4s
=> CACHED [shopexample_app 1/10] FROM docker.io/library/php:8.0.2-fpm-buster@sha256:b9adc59273171d12e243e4185d83cbdb7 0.0s
=> CANCELED [shopexample_app 2/10] RUN apt-get update && apt-get install -y openssl wget zlib1g-dev 2.8s
------
> [shopexample_nginx 2/5] RUN wget https://github.com/jwilder/dockerize/releases/download/v0.6.1/dockerize-alpine-linux-amd64-v0.6.1.tar.gz && tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-v0.6.1.tar.gz && rm dockerize-alpine-linux-amd64-v0.6.1.tar.gz:
#0 0.329 Connecting to github.com (140.82.112.3:443)
#0 0.334 wget: error getting response: Connection reset by peer
------
failed to solve: executor failed running [/bin/sh -c wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz && tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz && rm dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz]: exit code: 1
docker-compose.yaml:
version: "3.7"
services:
app:
build: docker/app
container_name: app
entrypoint: ./docker/app/entrypoint.sh
restart: always
volumes:
- .:/var/www
- ./docker/app/prod.ini:/usr/local/etc/php/conf.d/custom.ini
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
networks:
- app-network
depends_on:
- db
nginx:
build: docker/nginx
container_name: nginx
entrypoint: ./docker/nginx/entrypoint.sh
restart: always
tty: true
ports:
- "80:80"
- "443:443"
environment:
WAIT: -wait tcp://app:9000
volumes:
- .:/var/www
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
networks:
- app-network
depends_on:
- app
networks:
app-network:
driver: bridge
也许你正在使用的php:8.0.2-fpm-buster
映像是x86_64,你需要使用一个适合你在虚拟机中使用的架构的映像。
如果你使用安培处理器,他们是arm64架构。然后寻找arm64的php图像。
https://hub.docker.com/r/arm64v8/php/
在Dockerfile
的FROM
语句中使用arm64v8/
这样的:
FROM arm64v8/php:8.0.2-fpm-buster