diff --git a/.github/workflows/build_docker_image.yml b/.github/workflows/build_docker_image.yml index e3033820..ba811472 100644 --- a/.github/workflows/build_docker_image.yml +++ b/.github/workflows/build_docker_image.yml @@ -7,6 +7,7 @@ on: branches: - "master" - "develop" + - "test-overlay" tags: - "v*" schedule: diff --git a/docker/Dockerfile b/docker/Dockerfile index f8846fb4..36fdfa71 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -76,7 +76,30 @@ COPY --from=builder /tmp/build/node_modules/. /ql/node_modules/ WORKDIR ${QL_DIR} +ENV S6_VERSION=v3.2.0.0 + +RUN ARCH=$(uname -m) && \ + case "$ARCH" in \ + x86_64) ARCH="amd64" ;; \ + aarch64) ARCH="aarch64" ;; \ + armv6l) ARCH="arm" ;; \ + armv7l) ARCH="armhf" ;; \ + i386) ARCH="x86" ;; \ + s390x) ARCH="s390x" ;; \ + ppc64le) ARCH="powerpc64le" ;; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac && \ + S6_OVERLAY_URL=https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-${ARCH}.tar.xz && \ + apk add --no-cache curl && \ + curl -L $S6_OVERLAY_URL -o /tmp/s6-overlay.tar.xz && \ + tar -C / -Jxpf /tmp/s6-overlay.tar.xz + +COPY docker/s6-rc.d /etc/s6-overlay/s6-rc.d/ + +RUN chmod +x /etc/s6-overlay/s6-rc.d/*/run && \ + chmod +x /etc/s6-overlay/s6-rc.d/*/finish + HEALTHCHECK --interval=5s --timeout=2s --retries=20 \ CMD curl -sf --noproxy '*' http://127.0.0.1:5400/api/health || exit 1 -ENTRYPOINT ["./docker/docker-entrypoint.sh"] +ENTRYPOINT ["/init"] diff --git a/docker/s6-rc.d/crond/finish b/docker/s6-rc.d/crond/finish new file mode 100644 index 00000000..bbb5f767 --- /dev/null +++ b/docker/s6-rc.d/crond/finish @@ -0,0 +1,2 @@ +#!/command/execlineb -P +echo "finish crond" diff --git a/docker/s6-rc.d/crond/run b/docker/s6-rc.d/crond/run new file mode 100644 index 00000000..02a31adc --- /dev/null +++ b/docker/s6-rc.d/crond/run @@ -0,0 +1,2 @@ +#!/command/execlineb -P +crond -f diff --git a/docker/s6-rc.d/nginx/finish b/docker/s6-rc.d/nginx/finish new file mode 100644 index 00000000..43be1ec1 --- /dev/null +++ b/docker/s6-rc.d/nginx/finish @@ -0,0 +1,2 @@ +#!/command/execlineb -P +echo "finish ngnix" diff --git a/docker/s6-rc.d/nginx/run b/docker/s6-rc.d/nginx/run new file mode 100644 index 00000000..1afde8f3 --- /dev/null +++ b/docker/s6-rc.d/nginx/run @@ -0,0 +1,12 @@ +#!/command/execlineb -P +dir_shell=/ql/shell +. $dir_shell/share.sh +. $dir_shell/env.sh + +import_config "$@" +make_dir /etc/nginx/conf.d +make_dir /run/nginx +init_nginx +fix_config + +nginx -g "daemon off;" diff --git a/docker/s6-rc.d/panel/dependencies.d/schedule b/docker/s6-rc.d/panel/dependencies.d/schedule new file mode 100644 index 00000000..e69de29b diff --git a/docker/s6-rc.d/panel/finish b/docker/s6-rc.d/panel/finish new file mode 100644 index 00000000..f15d55e8 --- /dev/null +++ b/docker/s6-rc.d/panel/finish @@ -0,0 +1,2 @@ +#!/command/execlineb -P +echo "finish panel" diff --git a/docker/s6-rc.d/panel/run b/docker/s6-rc.d/panel/run new file mode 100644 index 00000000..18329b05 --- /dev/null +++ b/docker/s6-rc.d/panel/run @@ -0,0 +1,12 @@ +#!/command/execlineb -P +dir_shell=/ql/shell +. $dir_shell/share.sh +. $dir_shell/env.sh + +import_config "$@" +make_dir /etc/nginx/conf.d +make_dir /run/nginx +init_nginx +fix_config + +node ${dir_static}/build/app.js diff --git a/docker/s6-rc.d/publilc/finish b/docker/s6-rc.d/publilc/finish new file mode 100644 index 00000000..7234b265 --- /dev/null +++ b/docker/s6-rc.d/publilc/finish @@ -0,0 +1,2 @@ +#!/command/execlineb -P +echo "finish public" diff --git a/docker/s6-rc.d/publilc/run b/docker/s6-rc.d/publilc/run new file mode 100644 index 00000000..944289af --- /dev/null +++ b/docker/s6-rc.d/publilc/run @@ -0,0 +1,12 @@ +#!/command/execlineb -P +dir_shell=/ql/shell +. $dir_shell/share.sh +. $dir_shell/env.sh + +import_config "$@" +make_dir /etc/nginx/conf.d +make_dir /run/nginx +init_nginx +fix_config + +node ${dir_static}/build/public.js diff --git a/docker/s6-rc.d/schedule/finish b/docker/s6-rc.d/schedule/finish new file mode 100644 index 00000000..d9a3ff6f --- /dev/null +++ b/docker/s6-rc.d/schedule/finish @@ -0,0 +1,2 @@ +#!/command/execlineb -P +echo "finish schedule" diff --git a/docker/s6-rc.d/schedule/run b/docker/s6-rc.d/schedule/run new file mode 100644 index 00000000..e09c4d29 --- /dev/null +++ b/docker/s6-rc.d/schedule/run @@ -0,0 +1,12 @@ +#!/command/execlineb -P +dir_shell=/ql/shell +. $dir_shell/share.sh +. $dir_shell/env.sh + +import_config "$@" +make_dir /etc/nginx/conf.d +make_dir /run/nginx +init_nginx +fix_config + +node ${dir_static}/build/schedule/index.js diff --git a/docker/s6-rc.d/update/finish b/docker/s6-rc.d/update/finish new file mode 100644 index 00000000..9928e903 --- /dev/null +++ b/docker/s6-rc.d/update/finish @@ -0,0 +1,2 @@ +#!/command/execlineb -P +echo "finish update" diff --git a/docker/s6-rc.d/update/run b/docker/s6-rc.d/update/run new file mode 100644 index 00000000..b1a06e01 --- /dev/null +++ b/docker/s6-rc.d/update/run @@ -0,0 +1,12 @@ +#!/command/execlineb -P +dir_shell=/ql/shell +. $dir_shell/share.sh +. $dir_shell/env.sh + +import_config "$@" +make_dir /etc/nginx/conf.d +make_dir /run/nginx +init_nginx +fix_config + +node ${dir_static}/build/update.js