diff --git a/.dockerignore b/.dockerignore index a929e5f0858892e4d54880e3ad0ebb0f70e6203b..ab14ee09bb427bb4c9319b9c7a81d59d70150dd5 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,6 +1,4 @@ * -!src -!pom.xml +!target/nginxWebUI-*.jar !Dockerfile !entrypoint.sh -!settings.xml \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index da7c396c16082c22e30a5d32c0fa9f8ed5d1949a..ac5a5a6421b9c943edb695735d7a3fcaad3e615a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,3 @@ -FROM alpine:3.14 AS builder -COPY . /build -RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \ - && apk add --update --no-cache maven \ - && cd /build \ - && if [[ -s settings.xml ]]; then \ - mkdir -p /root/.m2; \ - cp -fv settings.xml /root/.m2/settings.xml; \ - fi \ - && mvn clean package \ - && mkdir -p /out/home \ - && cp target/nginxWebUI-*.jar /out/home/nginxWebUI.jar -COPY entrypoint.sh /out/usr/local/bin/entrypoint.sh - FROM alpine:3.14 ENV LANG=zh_CN.UTF-8 \ TZ=Asia/Shanghai \ @@ -34,7 +20,8 @@ RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \ && echo "${TZ}" > /etc/timezone \ && rm -rf /var/cache/apk/* /tmp/* -COPY --from=builder /out / +COPY target/nginxWebUI-*.jar /home/nginxWebUI.jar +COPY entrypoint.sh /usr/local/bin/entrypoint.sh VOLUME ["/home/nginxWebUI"] ENTRYPOINT ["tini", "entrypoint.sh"] diff --git a/buildx.sh b/buildx.sh index 10c1553b71ddbbc835b11c3edde68f5806f756a3..c91e46dc7bc68f503d00f7c9100e4e1a3b09597c 100755 --- a/buildx.sh +++ b/buildx.sh @@ -10,21 +10,26 @@ set -o pipefail ## 基本信息 repo="cym1102/nginxwebui" -arch="linux/amd64,linux/arm64,linux/arm/v7" +arch="linux/386,linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6,linux/ppc64le,linux/s390x" ver=$(cat pom.xml | grep -A1 nginxWebUI | grep version | grep -oP "\d+\.\d+\.\d+") echo "构建镜像:$repo" echo "构建架构:$arch" echo "构建版本:$ver" -echo "3秒后开始编译..." + +## 编译jar文件 +echo "3秒后开始编译jar文件..." sleep 3 +mvn clean package ## 准备跨平台构建环境 +echo "准备跨平台构建环境" docker pull tonistiigi/binfmt docker run --privileged --rm tonistiigi/binfmt --install all docker buildx create --name builder --use 2>/dev/null || docker buildx use builder docker buildx inspect --bootstrap ## 多平台镜像同时构建并推送 +echo "构建镜像并推送至Docker Hub" docker buildx build \ --cache-from "type=local,src=/tmp/.buildx-cache" \ --cache-to "type=local,dest=/tmp/.buildx-cache" \