我需要在打包镜像 ponponon/hbase:2.4.17 ,这个镜像支持 x86 和 arm,但是 x86 和 arm 需要的 Dockerfile 不一样,怎么使用 dockerfile 构建跨平台镜像?
x86 的 Dockerfile
FROM ubuntu:focal
RUN . /etc/os-release && cat > /etc/apt/sources.list <<EOF
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
EOF
RUN apt-get update
RUN apt-get install -y vim
RUN apt-get install -y openjdk-8-jdk
RUN apt-get install -y wget
WORKDIR /root
RUN wget -P /root https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.17/hbase-2.4.17-bin.tar.gz
RUN tar xvf /root/hbase-2.4.17-bin.tar.gz
RUN echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" | tee -a /etc/profile >/dev/null
COPY entrypoint.sh /root/
arm 的 Dockerfile
FROM ubuntu:focal
RUN . /etc/os-release && cat > /etc/apt/sources.list <<EOF
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
EOF
RUN apt-get update
RUN apt-get install -y vim
RUN apt-get install -y openjdk-8-jdk
RUN apt-get install -y wget
WORKDIR /root
RUN wget -P /root https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.17/hbase-2.4.17-bin.tar.gz
RUN tar xvf /root/hbase-2.4.17-bin.tar.gz
RUN echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64" | tee -a /etc/profile >/dev/null
COPY entrypoint.sh /root/
上面两个 Dockerfile 有两个区别:
- 首先
/etc/apt/sources.list
的内容不一样,amr 的是带 -ports 后缀的 - 然后,JAVA_HOME 这个环境变量不一样,x86 的是
/usr/lib/jvm/java-8-openjdk-amd64
,arm 的是/usr/lib/jvm/java-8-openjdk-arm64
在 chatGPT 帮助下,它给了我下面的 Dockerfile
# syntax=docker/dockerfile:1
# x86 架构
FROM ubuntu:focal AS x86
RUN . /etc/os-release && cat > /etc/apt/sources.list <<EOF
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
EOF
RUN apt-get update
RUN apt-get install -y vim
RUN apt-get install -y openjdk-8-jdk
RUN apt-get install -y wget
WORKDIR /root
RUN wget -P /root https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.17/hbase-2.4.17-bin.tar.gz
RUN tar xvf /root/hbase-2.4.17-bin.tar.gz
RUN echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" | tee -a /etc/profile >/dev/null
ENV JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
COPY entrypoint.sh /root/
# ARM 架构
FROM ubuntu:focal AS arm
RUN . /etc/os-release && cat > /etc/apt/sources.list <<EOF
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
EOF
RUN apt-get update
RUN apt-get install -y vim
RUN apt-get install -y openjdk-8-jdk
RUN apt-get install -y wget
WORKDIR /root
RUN wget -P /root https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.17/hbase-2.4.17-bin.tar.gz
RUN tar xvf /root/hbase-2.4.17-bin.tar.gz
RUN echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64" | tee -a /etc/profile >/dev/null
ENV JAVA_HOME="/usr/lib/jvm/java-8-openjdk-arm64"
COPY entrypoint.sh /root/
# 构建多平台镜像
FROM --platform=$BUILDPLATFORM x86 AS x86-platform
FROM --platform=$BUILDPLATFORM arm AS arm-platform
# 根据不同平台选择构建结果
FROM x86-platform AS final
# 或者使用下面的语法,选择 ARM 平台构建结果
# FROM arm-platform AS final
# 继续构建后续指令
# ...
# 定义入口点
CMD ["/root/entrypoint.sh"]
但是这玩意无法正常工作
─➤ docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t ponponon/hbase:2.4.17 .
[+] Building 148.6s (23/45) docker-container:admiring_mahavira
=> [internal] booting buildkit 36.0s
=> => pulling image moby/buildkit:buildx-stable-1 33.1s
=> => creating container buildx_buildkit_admiring_mahavira0 2.9s
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 2.32kB 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> resolve image config for docker.io/docker/dockerfile:1 3.8s
=> [auth] docker/dockerfile:pull token for registry-1.docker.io 0.0s
=> docker-image://docker.io/docker/dockerfile:1@sha256:39b85bbfa7536a5feceb7372a0817649ecb2724562a38360f4d6a7782a409b14 2.8s
=> => resolve docker.io/docker/dockerfile:1@sha256:39b85bbfa7536a5feceb7372a0817649ecb2724562a38360f4d6a7782a409b14 0.0s
=> => sha256:a47ff7046597eea0123ea02817165350e3680f75000dc5d69c9a310258e1bedd 11.55MB / 11.55MB 2.1s
=> => extracting sha256:a47ff7046597eea0123ea02817165350e3680f75000dc5d69c9a310258e1bedd 0.7s
=> [linux/amd64 internal] load metadata for docker.io/library/ubuntu:focal 4.1s
=> [linux/arm/v7 internal] load metadata for docker.io/library/ubuntu:focal 4.1s
=> [linux/arm64 internal] load metadata for docker.io/library/ubuntu:focal 4.5s
=> [auth] library/ubuntu:pull token for registry-1.docker.io 0.0s
=> [auth] library/ubuntu:pull token for registry-1.docker.io 0.0s
=> [internal] load build context 0.1s
=> => transferring context: 4.66kB 0.0s
=> [linux/arm64 x86 1/11] FROM docker.io/library/ubuntu:focal@sha256:c9820a44b950956a790c354700c1166a7ec648bc0d215fa438d3a339812f1d01 9.0s
=> => resolve docker.io/library/ubuntu:focal@sha256:c9820a44b950956a790c354700c1166a7ec648bc0d215fa438d3a339812f1d01 0.0s
=> => sha256:fd7ea62b7af53fe93cb837560acd7903ee12e26127affb518c2b9efc6500d503 25.97MB / 25.97MB 3.6s
=> => extracting sha256:fd7ea62b7af53fe93cb837560acd7903ee12e26127affb518c2b9efc6500d503 5.1s
=> [linux/amd64 x86 1/11] FROM docker.io/library/ubuntu:focal@sha256:c9820a44b950956a790c354700c1166a7ec648bc0d215fa438d3a339812f1d01 8.3s
=> => resolve docker.io/library/ubuntu:focal@sha256:c9820a44b950956a790c354700c1166a7ec648bc0d215fa438d3a339812f1d01 0.0s
=> => sha256:01085d60b3a624c06a7132ff0749efc6e6565d9f2531d7685ff559fb5d0f669f 27.51MB / 27.51MB 3.4s
=> => extracting sha256:01085d60b3a624c06a7132ff0749efc6e6565d9f2531d7685ff559fb5d0f669f 4.9s
=> [linux/arm/v7 x86 1/11] FROM docker.io/library/ubuntu:focal@sha256:c9820a44b950956a790c354700c1166a7ec648bc0d215fa438d3a339812f1d01 5.9s
=> => resolve docker.io/library/ubuntu:focal@sha256:c9820a44b950956a790c354700c1166a7ec648bc0d215fa438d3a339812f1d01 0.0s
=> => sha256:4eb99abaa83d514d01f419b511a391c5d9d4b1c2cefde8f51e786d8b1c946a7c 23.61MB / 23.61MB 2.0s
=> => extracting sha256:4eb99abaa83d514d01f419b511a391c5d9d4b1c2cefde8f51e786d8b1c946a7c 3.8s
=> [linux/arm/v7 x86 2/11] RUN . /etc/os-release && cat > /etc/apt/sources.list <<EOF 2.8s
=> [linux/amd64 x86 2/11] RUN . /etc/os-release && cat > /etc/apt/sources.list <<EOF 0.7s
=> CANCELED [linux/arm/v7 x86 3/11] RUN apt-get update 90.4s
=> [linux/arm64 x86 2/11] RUN . /etc/os-release && cat > /etc/apt/sources.list <<EOF 0.7s
=> [linux/amd64 x86 3/11] RUN apt-get update 8.0s
=> ERROR [linux/arm64 x86 3/11] RUN apt-get update 89.4s
=> [linux/amd64 x86 4/11] RUN apt-get install -y vim 15.9s
=> CANCELED [linux/amd64 x86 5/11] RUN apt-get install -y openjdk-8-jdk 66.4s
------
> [linux/arm64 x86 3/11] RUN apt-get update:
1.759 Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease [265 kB]
2.056 Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates InRelease [114 kB]
2.058 Get:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports InRelease [108 kB]
2.060 Get:4 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security InRelease [114 kB]
7.795 Ign:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/multiverse arm64 Packages
18.69 Ign:6 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe arm64 Packages
18.70 Ign:7 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/restricted arm64 Packages
18.70 Ign:8 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/main arm64 Packages
18.76 Ign:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/multiverse arm64 Packages
18.76 Ign:9 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/restricted arm64 Packages
30.36 Ign:10 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/main arm64 Packages
30.36 Ign:11 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/multiverse arm64 Packages
30.37 Ign:12 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/universe arm64 Packages
30.37 Ign:6 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe arm64 Packages
30.37 Ign:7 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/restricted arm64 Packages
30.37 Ign:8 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/main arm64 Packages
30.38 Ign:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/multiverse arm64 Packages
30.44 Ign:9 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/restricted arm64 Packages
30.44 Ign:13 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports/main arm64 Packages
30.45 Ign:14 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports/universe arm64 Packages
30.46 Ign:15 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/universe arm64 Packages
30.46 Ign:16 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/main arm64 Packages
30.47 Ign:17 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/multiverse arm64 Packages
30.48 Ign:18 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/restricted arm64 Packages
30.48 Ign:10 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/main arm64 Packages
30.49 Ign:11 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/multiverse arm64 Packages
30.50 Ign:12 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/universe arm64 Packages
30.50 Ign:6 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe arm64 Packages
30.50 Ign:7 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/restricted arm64 Packages
30.50 Ign:8 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/main arm64 Packages
30.52 Ign:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/multiverse arm64 Packages
30.52 Ign:9 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/restricted arm64 Packages
30.52 Ign:13 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports/main arm64 Packages
30.53 Ign:14 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports/universe arm64 Packages
30.55 Ign:15 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/universe arm64 Packages
43.60 Ign:16 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/main arm64 Packages
43.60 Ign:17 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/multiverse arm64 Packages
43.61 Ign:18 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/restricted arm64 Packages
43.61 Ign:10 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/main arm64 Packages
43.61 Ign:11 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/multiverse arm64 Packages
43.61 Ign:12 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/universe arm64 Packages
43.61 Ign:6 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe arm64 Packages
43.62 Ign:7 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/restricted arm64 Packages
43.62 Ign:8 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/main arm64 Packages
43.62 Ign:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/multiverse arm64 Packages
55.00 Ign:9 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/restricted arm64 Packages
55.00 Ign:13 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports/main arm64 Packages
55.01 Ign:14 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports/universe arm64 Packages
55.01 Ign:15 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/universe arm64 Packages
55.01 Ign:16 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/main arm64 Packages
55.01 Ign:17 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/multiverse arm64 Packages
55.01 Ign:18 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/restricted arm64 Packages
55.02 Ign:10 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/main arm64 Packages
55.02 Ign:11 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/multiverse arm64 Packages
55.02 Ign:12 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/universe arm64 Packages
55.07 Ign:6 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe arm64 Packages
55.07 Ign:7 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/restricted arm64 Packages
55.07 Ign:8 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/main arm64 Packages
55.07 Err:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/multiverse arm64 Packages
55.07 404 Not Found [IP: 101.6.15.130 80]
55.08 Ign:9 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/restricted arm64 Packages
55.08 Ign:13 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports/main arm64 Packages
64.10 Ign:14 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports/universe arm64 Packages
64.11 Ign:15 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/universe arm64 Packages
64.11 Ign:16 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/main arm64 Packages
64.11 Ign:17 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/multiverse arm64 Packages
86.33 Ign:18 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/restricted arm64 Packages
86.33 Ign:10 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/main arm64 Packages
86.33 Ign:11 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/multiverse arm64 Packages
86.49 Ign:12 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/universe arm64 Packages
86.49 Err:9 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/restricted arm64 Packages
86.49 404 Not Found [IP: 101.6.15.130 80]
86.49 Ign:13 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports/main arm64 Packages
86.50 Ign:14 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports/universe arm64 Packages
86.50 Ign:15 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/universe arm64 Packages
86.52 Ign:16 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/main arm64 Packages
86.52 Ign:17 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/multiverse arm64 Packages
86.52 Ign:18 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/restricted arm64 Packages
86.54 Ign:10 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/main arm64 Packages
86.54 Ign:11 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/multiverse arm64 Packages
86.55 Ign:12 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/universe arm64 Packages
86.55 Err:13 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports/main arm64 Packages
86.55 404 Not Found [IP: 101.6.15.130 80]
86.55 Ign:14 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports/universe arm64 Packages
86.58 Err:15 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/universe arm64 Packages
86.58 404 Not Found [IP: 101.6.15.130 80]
86.58 Ign:16 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/main arm64 Packages
86.58 Ign:17 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/multiverse arm64 Packages
86.58 Ign:18 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/restricted arm64 Packages
86.82 Fetched 601 kB in 1min 25s (7041 B/s)
86.82 Reading package lists...
87.33 E: Failed to fetch http://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/focal/multiverse/binary-arm64/Packages 404 Not Found [IP: 101.6.15.130 80]
87.33 E: Failed to fetch http://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/focal-updates/restricted/binary-arm64/Packages 404 Not Found [IP: 101.6.15.130 80]
87.33 E: Failed to fetch http://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/focal-backports/main/binary-arm64/Packages 404 Not Found [IP: 101.6.15.130 80]
87.33 E: Failed to fetch http://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/focal-security/universe/binary-arm64/Packages 404 Not Found [IP: 101.6.15.130 80]
87.33 E: Some index files failed to download. They have been ignored, or old ones used instead.
------
WARNING: No output specified with docker-container driver. Build result will only remain in the build cache. To push result image into registry use --push or to load image into docker use --load
Dockerfile:13
--------------------
11 | EOF
12 |
13 | >>> RUN apt-get update
14 | RUN apt-get install -y vim
15 | RUN apt-get install -y openjdk-8-jdk
--------------------
ERROR: failed to solve: process "/dev/.buildkit_qemu_emulator /bin/sh -c apt-get update" did not complete successfully: exit code: 100
从报错来看,这个 docker 分不清哪部分要用 arm,哪部分要用 x86
我该怎么修改这个 Dockerfile 呢?
修改成下面这样还是报错
# syntax=docker/dockerfile:1
# x86 架构
FROM ubuntu:focal AS x86
RUN . /etc/os-release && cat > /etc/apt/sources.list <<EOF
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
EOF
RUN apt-get update && apt-get install -y vim openjdk-8-jdk wget
WORKDIR /root
RUN wget -P /root https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.17/hbase-2.4.17-bin.tar.gz
RUN tar xvf /root/hbase-2.4.17-bin.tar.gz
RUN echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" | tee -a /etc/profile >/dev/null
ENV JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
COPY entrypoint.sh /root/
# ARM 架构
FROM ubuntu:focal AS arm
RUN . /etc/os-release && cat > /etc/apt/sources.list <<EOF
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
EOF
RUN apt-get update && apt-get install -y vim openjdk-8-jdk wget
WORKDIR /root
RUN wget -P /root https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.17/hbase-2.4.17-bin.tar.gz
RUN tar xvf /root/hbase-2.4.17-bin.tar.gz
RUN echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64" | tee -a /etc/profile >/dev/null
ENV JAVA_HOME="/usr/lib/jvm/java-8-openjdk-arm64"
COPY entrypoint.sh /root/
# 根据不同平台选择构建结果
FROM --platform=$BUILDPLATFORM $TARGETPLATFORM AS final
ARG TARGETPLATFORM
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then cp -R /x86/* /; else cp -R /arm/* /; fi
# 定义入口点
CMD ["/root/entrypoint.sh"]
报错
─➤ docker buildx build --platform linux/amd64,linux/arm64 -t ponponon/hbase:2.4.17 . 1 ↵
[+] Building 2.8s (8/8) FINISHED docker-container:mybuilder
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 2.11kB 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> resolve image config for docker.io/docker/dockerfile:1 0.4s
=> CACHED docker-image://docker.io/docker/dockerfile:1@sha256:39b85bbfa7536a5feceb7372a0817649ecb2724562a38360f4d6a7782a409b14 0.0s
=> => resolve docker.io/docker/dockerfile:1@sha256:39b85bbfa7536a5feceb7372a0817649ecb2724562a38360f4d6a7782a409b14 0.0s
=> ERROR [linux/amd64 internal] load metadata for docker.io/linux/arm64:latest 1.1s
=> CANCELED [linux/amd64 internal] load metadata for docker.io/linux/amd64:latest 1.1s
=> [auth] linux/arm64:pull token for registry-1.docker.io 0.0s
=> [auth] linux/amd64:pull token for registry-1.docker.io 0.0s
------
> [linux/amd64 internal] load metadata for docker.io/linux/arm64:latest:
------
WARNING: No output specified with docker-container driver. Build result will only remain in the build cache. To push result image into registry use --push or to load image into docker use --load
Dockerfile:42
--------------------
40 |
41 | # 根据不同平台选择构建结果
42 | >>> FROM --platform=$BUILDPLATFORM $TARGETPLATFORM AS final
43 | ARG TARGETPLATFORM
44 | RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then cp -R /x86/* /; else cp -R /arm/* /; fi
--------------------
ERROR: failed to solve: linux/arm64: pull access denied, repository does not exist or may require authorization: authorization status: 401: authorization failed