我尝试在 Travis-CI 上为多个架构构建一个 docker 镜像。这对于 amd64 和 i386 非常有效,但对于 ARM 却失败了。
在顶部的Dockerfile构建{ARCH}/nextcloud:apache
是建立在顶部php:7.3-apache-stretch
再次使用debian:stretch-slim
。所以所有的图像都使用相同的堆栈并且应该做出相似的反应。
.travis.yml
env:
- TAG=i386 ARCH=i386
- TAG=amd64 ARCH=amd64
- TAG=armhf ARCH=arm32v7
- TAG=aarch64 ARCH=arm64v8
before_script:
- docker run --rm --privileged multiarch/qemu-user-static:register --reset
script:
- docker build --pull --build-arg ARCH=$ARCH -t escoand/nextcloud:$TAG nextcloud
Run Code Online (Sandbox Code Playgroud)
文件
ARG ARCH
FROM ${ARCH}/nextcloud:apache
RUN apt-get update && apt-get install -y supervisor && \
rm -rf /var/lib/apt/lists/* && \
mkdir /var/log/supervisord /var/run/supervisord
Run Code Online (Sandbox Code Playgroud)
如前所述,i386 和 amd64 的构建没有问题。ARM 构建已通过第一个 RUN 命令失败: …