diff --git a/.dockerignore b/.dockerignore index ab14ee09bb427bb4c9319b9c7a81d59d70150dd5..6aa34829fc8656bed0f728fd6f875c233b805705 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,4 +1,4 @@ * !target/nginxWebUI-*.jar !Dockerfile -!entrypoint.sh +!s6-overlay diff --git a/Dockerfile b/Dockerfile index 5f8a944fc6b82d52ad70782b0f734d65cf323d9b..c931447c0c8e7db6acf0c28ecae734974ffa3416 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine-s6:3.14 +FROM alpine:3.14 ENV LANG=zh_CN.UTF-8 \ TZ=Asia/Shanghai \ PS1="\u@\h:\w \$ " @@ -13,7 +13,7 @@ RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories ttf-dejavu \ fontconfig \ tzdata \ - tini \ + s6-overlay \ acme.sh \ sqlite \ && fc-cache -f -v \ @@ -21,7 +21,7 @@ RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && echo "${TZ}" > /etc/timezone \ && rm -rf /var/cache/apk/* /tmp/* COPY target/nginxWebUI-*.jar /home/nginxWebUI.jar -COPY entrypoint.sh /usr/local/bin/entrypoint.sh +COPY s6-overlay / VOLUME ["/home/nginxWebUI"] -ENTRYPOINT ["tini", "entrypoint.sh"] +ENTRYPOINT ["/init"] diff --git a/buildx.sh b/buildx.sh index c91e46dc7bc68f503d00f7c9100e4e1a3b09597c..04c1059fdc67faad30858746d16fa7aa128677f0 100755 --- a/buildx.sh +++ b/buildx.sh @@ -4,12 +4,9 @@ ## 需要安装好docker-buildx:https://docs.docker.com/buildx/working-with-buildx/ ## 如需自动推送readme至dockerhub,需要安装docker-pushrm:https://github.com/christian-korneck/docker-pushrm ## Dockerfile同目录下运行此脚本 -## 如果在同目录下存在maven的镜像加速配置文件settings.xml,也会作为编译时的加速配置 - -set -o pipefail ## 基本信息 -repo="cym1102/nginxwebui" +repo="{$1:-cym1102}/nginxwebui" 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" @@ -19,25 +16,26 @@ echo "构建版本:$ver" ## 编译jar文件 echo "3秒后开始编译jar文件..." sleep 3 -mvn clean package +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 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" \ - --platform "$arch" \ - --tag ${repo}:${ver} \ - --tag ${repo}:latest \ - --push \ - . + ## 多平台镜像同时构建并推送 + echo "构建镜像并推送至Docker Hub" + docker buildx build \ + --cache-from "type=local,src=/tmp/.buildx-cache" \ + --cache-to "type=local,dest=/tmp/.buildx-cache" \ + --platform "$arch" \ + --tag ${repo}:${ver} \ + --tag ${repo}:latest \ + --push \ + . -## 推送readme.md至dockerhub,需要docker-pushrm -# docker pushrm $repo + ## 推送readme.md至dockerhub,需要docker-pushrm + # docker pushrm $repo +} diff --git a/entrypoint.sh b/entrypoint.sh deleted file mode 100755 index de09fabc5d23a329e233f8f58fb4d73504b340b0..0000000000000000000000000000000000000000 --- a/entrypoint.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd /home -exec java -jar -Xmx64m nginxWebUI.jar "${BOOT_OPTIONS}" > /dev/null diff --git a/s6-overlay/etc/services.d/nginxwebui/run b/s6-overlay/etc/services.d/nginxwebui/run new file mode 100755 index 0000000000000000000000000000000000000000..8280b02965cd75778874d649851ae4d029e0a04f --- /dev/null +++ b/s6-overlay/etc/services.d/nginxwebui/run @@ -0,0 +1,4 @@ +#!/usr/bin/with-contenv sh + +cd /home +exec java -jar -Xmx64m nginxWebUI.jar "${BOOT_OPTIONS}" 2>&1 >/dev/null