From 654b903d7ab08d54959d057b1fd8ab7bffa1acf5 Mon Sep 17 00:00:00 2001 From: Bingchang Chen <19990626.love@163.com> Date: Wed, 26 Oct 2022 23:31:00 +0800 Subject: [PATCH] feat: fix multi-platform docker image (#1242) --- Dockerfile | 10 ++++++++-- build.sh | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index d292e2e4..c95d1500 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,9 @@ RUN ./build.sh FROM alpine:latest AS STANDARD LABEL MAINTAINER="https://casdoor.org/" ARG USER=casdoor +ARG TARGETOS +ARG TARGETARCH +ENV BUILDX_ARCH="${TARGETOS:-linux}_${TARGETARCH:-amd64}" RUN sed -i 's/https/http/' /etc/apk/repositories RUN apk add --update sudo @@ -28,7 +31,7 @@ RUN adduser -D $USER -u 1000 \ USER 1000 WORKDIR / -COPY --from=BACK --chown=$USER:$USER /go/src/casdoor/server ./server +COPY --from=BACK --chown=$USER:$USER /go/src/casdoor/server_${BUILDX_ARCH} ./server COPY --from=BACK --chown=$USER:$USER /go/src/casdoor/swagger ./swagger COPY --from=BACK --chown=$USER:$USER /go/src/casdoor/conf/app.conf ./conf/app.conf COPY --from=FRONT --chown=$USER:$USER /web/build ./web/build @@ -46,12 +49,15 @@ RUN apt update \ FROM db AS ALLINONE LABEL MAINTAINER="https://casdoor.org/" +ARG TARGETOS +ARG TARGETARCH +ENV BUILDX_ARCH="${TARGETOS:-linux}_${TARGETARCH:-amd64}" RUN apt update RUN apt install -y ca-certificates && update-ca-certificates WORKDIR / -COPY --from=BACK /go/src/casdoor/server ./server +COPY --from=BACK /go/src/casdoor/server_${BUILDX_ARCH} ./server COPY --from=BACK /go/src/casdoor/swagger ./swagger COPY --from=BACK /go/src/casdoor/docker-entrypoint.sh /docker-entrypoint.sh COPY --from=BACK /go/src/casdoor/conf/app.conf ./conf/app.conf diff --git a/build.sh b/build.sh index 31ff51c0..0a0e3af1 100755 --- a/build.sh +++ b/build.sh @@ -8,4 +8,5 @@ else echo "Google is blocked, Go proxy is enabled: GOPROXY=https://goproxy.cn,direct" export GOPROXY="https://goproxy.cn,direct" fi -CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o server . +CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o server_linux_amd64 . +CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-w -s" -o server_linux_arm64 .