From dc7f76dac1071228cfb45039beb0b2e8917a3323 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 Sep 2023 20:37:22 +0100 Subject: [PATCH] Rebase to 3.18, migrate to s6v3 (#47) * Rebase to 3.17, migrate to s6v3 * Add ipfs migrations. * Brackets * Add build-base for arm builds * Rebase to 3.18, deprecate armhf * Fix mismerge of jenkinsfile * Make dockerfiles consistent * Update changelog date * need to use old go to build some of the migrations and ingest chdman from alpine testing repos * add build deps for aarch64 --------- Co-authored-by: ryan.kuba --- .github/workflows/call_issue_pr_tracker.yml | 0 .github/workflows/call_issues_cron.yml | 0 Dockerfile | 54 +++++++++++++---- Dockerfile.aarch64 | 60 ++++++++++++++----- README.md | 1 + jenkins-vars.yml | 1 + readme-vars.yml | 1 + root/etc/cont-init.d/20-config | 45 -------------- .../dependencies.d/init-emulatorjs-config | 0 .../dependencies.d/init-config | 0 .../s6-rc.d/init-emulatorjs-config/run | 52 ++++++++++++++++ .../s6-rc.d/init-emulatorjs-config/type | 1 + .../s6-rc.d/init-emulatorjs-config/up | 1 + .../svc-backend/dependencies.d/init-services | 0 .../s6-rc.d/svc-backend/notification-fd | 1 + root/etc/s6-overlay/s6-rc.d/svc-backend/run | 6 ++ root/etc/s6-overlay/s6-rc.d/svc-backend/type | 1 + .../svc-ipfs/dependencies.d/init-services | 0 .../s6-rc.d/svc-ipfs/notification-fd | 1 + root/etc/s6-overlay/s6-rc.d/svc-ipfs/run | 6 ++ root/etc/s6-overlay/s6-rc.d/svc-ipfs/type | 1 + .../svc-nginx/dependencies.d/init-services | 0 .../s6-rc.d/svc-nginx/notification-fd | 1 + root/etc/s6-overlay/s6-rc.d/svc-nginx/run | 10 ++++ root/etc/s6-overlay/s6-rc.d/svc-nginx/type | 1 + .../svc-profile/dependencies.d/init-services | 0 .../s6-rc.d/svc-profile/notification-fd | 1 + root/etc/s6-overlay/s6-rc.d/svc-profile/run | 6 ++ root/etc/s6-overlay/s6-rc.d/svc-profile/type | 1 + .../user/contents.d/init-emulatorjs-config | 0 .../s6-rc.d/user/contents.d/svc-backend | 0 .../s6-rc.d/user/contents.d/svc-ipfs | 0 .../s6-rc.d/user/contents.d/svc-nginx | 0 .../s6-rc.d/user/contents.d/svc-profile | 0 root/etc/services.d/backend/run | 5 -- root/etc/services.d/ipfs/run | 4 -- root/etc/services.d/nginx/run | 7 --- root/etc/services.d/profile/run | 5 -- 38 files changed, 180 insertions(+), 93 deletions(-) mode change 100755 => 100644 .github/workflows/call_issue_pr_tracker.yml mode change 100755 => 100644 .github/workflows/call_issues_cron.yml delete mode 100644 root/etc/cont-init.d/20-config create mode 100644 root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-emulatorjs-config create mode 100644 root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/dependencies.d/init-config create mode 100755 root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/run create mode 100644 root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/up create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-backend/dependencies.d/init-services create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-backend/notification-fd create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-backend/run create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-backend/type create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-ipfs/dependencies.d/init-services create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-ipfs/notification-fd create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-ipfs/run create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-ipfs/type create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-services create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-nginx/notification-fd create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-nginx/run create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-nginx/type create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-profile/dependencies.d/init-services create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-profile/notification-fd create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-profile/run create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-profile/type create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-emulatorjs-config create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-backend create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-ipfs create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-nginx create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-profile delete mode 100644 root/etc/services.d/backend/run delete mode 100644 root/etc/services.d/ipfs/run delete mode 100644 root/etc/services.d/nginx/run delete mode 100644 root/etc/services.d/profile/run diff --git a/.github/workflows/call_issue_pr_tracker.yml b/.github/workflows/call_issue_pr_tracker.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/call_issues_cron.yml b/.github/workflows/call_issues_cron.yml old mode 100755 new mode 100644 diff --git a/Dockerfile b/Dockerfile index d4c11b0..8854e88 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,30 @@ -FROM ghcr.io/linuxserver/baseimage-alpine:3.15 as binbuilder +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-alpine:3.14 as migrationbuilder + +RUN \ + echo "**** install build packages ****" && \ + apk add \ + git \ + go + +RUN \ + echo "**** build fs-repo-migrations ****" && \ + mkdir -p /build-out/usr/bin && \ + git clone https://github.com/ipfs/fs-repo-migrations.git && \ + cd fs-repo-migrations && \ + for BUILD in fs-repo-migrations fs-repo-9-to-10 fs-repo-10-to-11 fs-repo-11-to-12; do \ + cd ${BUILD} && \ + go build && \ + mv fs-repo-* /build-out/usr/bin/ && \ + cd .. ; \ + done + +FROM ghcr.io/linuxserver/baseimage-alpine:3.18 as binbuilder RUN \ echo "**** install build packages ****" && \ apk add \ - curl \ git \ go @@ -28,15 +49,25 @@ RUN \ chmod +x /tmp/binmerge && \ mv /tmp/binmerge /build-out/usr/local/bin -FROM ghcr.io/linuxserver/baseimage-alpine:3.15 as nodebuilder +RUN \ + echo "**** build fs-repo-migrations ****" && \ + mkdir /build-out/usr/bin && \ + git clone https://github.com/ipfs/fs-repo-migrations.git && \ + cd fs-repo-migrations && \ + for BUILD in fs-repo-migrations fs-repo-12-to-13; do \ + cd ${BUILD} && \ + go build && \ + mv fs-repo-* /build-out/usr/bin/ && \ + cd .. ; \ + done + +FROM ghcr.io/linuxserver/baseimage-alpine:3.18 as nodebuilder ARG EMULATORJS_RELEASE -ARG RETRO_VERSION=1.9.10 RUN \ echo "**** install build packages ****" && \ apk add \ - curl \ nodejs \ npm \ p7zip \ @@ -81,7 +112,7 @@ RUN \ npm install # runtime stage -FROM ghcr.io/linuxserver/baseimage-alpine:3.15 +FROM ghcr.io/linuxserver/baseimage-alpine:3.18 # set version label ARG BUILD_DATE @@ -92,27 +123,24 @@ LABEL maintainer="thelamer" RUN \ echo "**** install runtime packages ****" && \ apk add --no-cache \ - curl \ file \ flac \ - go-ipfs \ + kubo \ nginx \ nodejs \ p7zip \ python3 \ sdl2 && \ + apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + mame-tools && \ mkdir /data && \ - echo "**** grab pre-built chdman ****" && \ - curl -L \ - "https://infura-ipfs.io/ipfs/QmUfYfuoxPgDRc9Mniv1TBXv6LXPRNArAabZo5VnzfZNtP" \ - -o /usr/local/bin/chdman && \ - chmod +x /usr/local/bin/chdman && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* # add local files and files from buildstage COPY --from=binbuilder /build-out/ / +COPY --from=migrationbuilder /build-out/ / COPY --from=nodebuilder /emulatorjs/ /emulatorjs/ COPY root/ / diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 8661a2e..61a1669 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,11 +1,36 @@ -FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.15 as binbuilder +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.14 as migrationbuilder RUN \ echo "**** install build packages ****" && \ apk add \ - curl \ git \ - go + gcc \ + go \ + musl-dev + +RUN \ + echo "**** build fs-repo-migrations ****" && \ + mkdir -p /build-out/usr/bin && \ + git clone https://github.com/ipfs/fs-repo-migrations.git && \ + cd fs-repo-migrations && \ + for BUILD in fs-repo-migrations fs-repo-9-to-10 fs-repo-10-to-11 fs-repo-11-to-12; do \ + cd ${BUILD} && \ + go build && \ + mv fs-repo-* /build-out/usr/bin/ && \ + cd .. ; \ + done + +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.18 as binbuilder + +RUN \ + echo "**** install build packages ****" && \ + apk add \ + git \ + gcc \ + go \ + musl-dev RUN \ echo "**** build nestool ****" && \ @@ -28,14 +53,25 @@ RUN \ chmod +x /tmp/binmerge && \ mv /tmp/binmerge /build-out/usr/local/bin -FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.15 as nodebuilder +RUN \ + echo "**** build fs-repo-migrations ****" && \ + mkdir /build-out/usr/bin && \ + git clone https://github.com/ipfs/fs-repo-migrations.git && \ + cd fs-repo-migrations && \ + for BUILD in fs-repo-migrations fs-repo-9-to-10 fs-repo-10-to-11 fs-repo-11-to-12 fs-repo-12-to-13; do \ + cd ${BUILD} && \ + go build && \ + mv fs-repo-* /build-out/usr/bin/ && \ + cd .. ; \ + done + +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.18 as nodebuilder ARG EMULATORJS_RELEASE RUN \ echo "**** install build packages ****" && \ apk add \ - curl \ nodejs \ npm \ p7zip \ @@ -80,7 +116,7 @@ RUN \ npm install # runtime stage -FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.15 +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.18 # set version label ARG BUILD_DATE @@ -91,28 +127,24 @@ LABEL maintainer="thelamer" RUN \ echo "**** install runtime packages ****" && \ apk add --no-cache \ - curl \ file \ flac \ + kubo \ nginx \ nodejs \ p7zip \ python3 \ sdl2 && \ mkdir /data && \ - apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/v3.14/community \ - go-ipfs && \ - echo "**** grab pre-built chdman ****" && \ - curl -L \ - "https://infura-ipfs.io/ipfs/QmUqmGm5KUeeWSS9FG9DMuSQPpvU7RqffFR9n3rJXDQ8AQ" \ - -o /usr/local/bin/chdman && \ - chmod +x /usr/local/bin/chdman && \ + apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + mame-tools && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* # add local files and files from buildstage COPY --from=binbuilder /build-out/ / +COPY --from=migrationbuilder /build-out/ / COPY --from=nodebuilder /emulatorjs/ /emulatorjs/ COPY root/ / diff --git a/README.md b/README.md index d4e748f..9f8c673 100644 --- a/README.md +++ b/README.md @@ -283,6 +283,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **09.06.23:** - Rebase to Alpine 3.18, migrate to s6v3, deprecate armhf. * **06.07.23:** - Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf) * **24.11.22:** - Update IPFS links for chdman. * **04.04.22:** - Ingest pre-built chdman bins during build time. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index b870060..2ad2dc7 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -6,6 +6,7 @@ external_type: github_stable release_type: stable release_tag: latest ls_branch: master +build_armhf: false repo_vars: - EXT_GIT_BRANCH = 'master' - EXT_USER = 'linuxserver' diff --git a/readme-vars.yml b/readme-vars.yml index dc87c67..9730ccc 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -86,6 +86,7 @@ app_setup_block: | * ws # changelog changelogs: + - {date: "09.08.23:", desc: "Rebase to Alpine 3.18, migrate to s6v3."} - {date: "06.07.23:", desc: "Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf)"} - {date: "24.11.22:", desc: "Update IPFS links for chdman."} - {date: "04.04.22:", desc: "Ingest pre-built chdman bins during build time."} diff --git a/root/etc/cont-init.d/20-config b/root/etc/cont-init.d/20-config deleted file mode 100644 index 9f7a9ae..0000000 --- a/root/etc/cont-init.d/20-config +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/with-contenv bash - -# permissions -chown abc:abc \ - /data - -# ipfs config -if [ ! -d "/data/.ipfs" ]; then - HOME=/data ipfs init --profile lowpower - chown -R abc:abc /data/.ipfs -fi - -# link user data to frontend -if [ ! -L '/emulatorjs/frontend/user' ]; then - ln -s /data /emulatorjs/frontend/user -fi - -# Default profile directory -if [ ! -d '/config/profile/default' ]; then - mkdir -p /config/profile/default - echo "input_menu_toggle_gamepad_combo = 3 -system_directory = /home/web_user/retroarch/system/" > /config/profile/default/retroarch.cfg - chown -R abc:abc /config/profile -fi -if [ ! -f '/config/profile/profile.json' ]; then - echo '{}' > /config/profile/profile.json - chown -R abc:abc /config/profile -fi - -# nginx mime types -cp /defaults/mime.types /etc/nginx/mime.types - -# nginx body cache -chown -R abc:root /var/lib/nginx - -# allow users to mount in rom dirs -DIRS='3do atari2600 atari7800 colecovision doom gba lynx n64 nes odyssey2 psx segaCD segaMD segaSaturn snes vb ws arcade atari5200 gb gbc jaguar msx nds ngp pce sega32x segaGG segaMS segaSG vectrex' -for DIR in ${DIRS}; do - if [ -d "/data/${DIR}" ]; then - chown abc:abc "/data/${DIR}" - fi - if [ -d "/data/${DIR}/roms" ]; then - chown abc:abc "/data/${DIR}/roms" - fi -done diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-emulatorjs-config b/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-emulatorjs-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/dependencies.d/init-config b/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/dependencies.d/init-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/run b/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/run new file mode 100755 index 0000000..0ee54d5 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/run @@ -0,0 +1,52 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +# permissions +lsiown abc:abc \ + /data + +# ipfs migrate check on startup +if [[ -d "/data/.ipfs" ]]; then + echo "[ipfs-upgrade] Checking if fs-repo needs to be upgraded (this may take some time)" + HOME=/data s6-setuidgid abc /usr/bin/fs-repo-migrations -y -to 13 +fi + +# ipfs config +if [[ ! -d "/data/.ipfs" ]]; then + HOME=/data ipfs init --profile lowpower + lsiown -R abc:abc /data/.ipfs +fi + +# link user data to frontend +if [[ ! -L '/emulatorjs/frontend/user' ]]; then + ln -s /data /emulatorjs/frontend/user +fi + +# Default profile directory +if [[ ! -d '/config/profile/default' ]]; then + mkdir -p /config/profile/default + echo "input_menu_toggle_gamepad_combo = 3 +system_directory = /home/web_user/retroarch/system/" > /config/profile/default/retroarch.cfg + lsiown -R abc:abc /config/profile +fi +if [[ ! -f '/config/profile/profile.json' ]]; then + echo '{}' > /config/profile/profile.json + lsiown -R abc:abc /config/profile +fi + +# nginx mime types +cp /defaults/mime.types /etc/nginx/mime.types + +# nginx body cache +lsiown -R abc:root /var/lib/nginx + +# allow users to mount in rom dirs +DIRS='3do atari2600 atari7800 colecovision doom gba lynx n64 nes odyssey2 psx segaCD segaMD segaSaturn snes vb ws arcade atari5200 gb gbc jaguar msx nds ngp pce sega32x segaGG segaMS segaSG vectrex' +for DIR in ${DIRS}; do + if [[ -d "/data/${DIR}" ]]; then + lsiown abc:abc "/data/${DIR}" + fi + if [[ -d "/data/${DIR}/roms" ]]; then + lsiown abc:abc "/data/${DIR}/roms" + fi +done diff --git a/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/type b/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/up b/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/up new file mode 100644 index 0000000..6a37860 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/svc-backend/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-backend/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-backend/notification-fd b/root/etc/s6-overlay/s6-rc.d/svc-backend/notification-fd new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-backend/notification-fd @@ -0,0 +1 @@ +3 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-backend/run b/root/etc/s6-overlay/s6-rc.d/svc-backend/run new file mode 100755 index 0000000..5f34a0f --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-backend/run @@ -0,0 +1,6 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +HOME=/data exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 3000" \ + cd /emulatorjs s6-setuidgid abc node index.js diff --git a/root/etc/s6-overlay/s6-rc.d/svc-backend/type b/root/etc/s6-overlay/s6-rc.d/svc-backend/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-backend/type @@ -0,0 +1 @@ +longrun diff --git a/root/etc/s6-overlay/s6-rc.d/svc-ipfs/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-ipfs/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-ipfs/notification-fd b/root/etc/s6-overlay/s6-rc.d/svc-ipfs/notification-fd new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-ipfs/notification-fd @@ -0,0 +1 @@ +4 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-ipfs/run b/root/etc/s6-overlay/s6-rc.d/svc-ipfs/run new file mode 100755 index 0000000..77e20f1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-ipfs/run @@ -0,0 +1,6 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +HOME=/data exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 4001" \ + s6-setuidgid abc ipfs daemon diff --git a/root/etc/s6-overlay/s6-rc.d/svc-ipfs/type b/root/etc/s6-overlay/s6-rc.d/svc-ipfs/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-ipfs/type @@ -0,0 +1 @@ +longrun diff --git a/root/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-nginx/notification-fd b/root/etc/s6-overlay/s6-rc.d/svc-nginx/notification-fd new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-nginx/notification-fd @@ -0,0 +1 @@ +5 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-nginx/run b/root/etc/s6-overlay/s6-rc.d/svc-nginx/run new file mode 100755 index 0000000..e94675b --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-nginx/run @@ -0,0 +1,10 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +if pgrep -f "[n]ginx:" > /dev/null; then + pkill -ef [n]ginx: +fi + +exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 80" \ + /usr/sbin/nginx -c /etc/nginx/nginx.conf diff --git a/root/etc/s6-overlay/s6-rc.d/svc-nginx/type b/root/etc/s6-overlay/s6-rc.d/svc-nginx/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-nginx/type @@ -0,0 +1 @@ +longrun diff --git a/root/etc/s6-overlay/s6-rc.d/svc-profile/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-profile/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-profile/notification-fd b/root/etc/s6-overlay/s6-rc.d/svc-profile/notification-fd new file mode 100644 index 0000000..1e8b314 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-profile/notification-fd @@ -0,0 +1 @@ +6 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-profile/run b/root/etc/s6-overlay/s6-rc.d/svc-profile/run new file mode 100755 index 0000000..d2ff02b --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-profile/run @@ -0,0 +1,6 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +HOME=/config exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 3001" \ + cd /emulatorjs s6-setuidgid abc node profile.js diff --git a/root/etc/s6-overlay/s6-rc.d/svc-profile/type b/root/etc/s6-overlay/s6-rc.d/svc-profile/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-profile/type @@ -0,0 +1 @@ +longrun diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-emulatorjs-config b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-emulatorjs-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-backend b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-backend new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-ipfs b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-ipfs new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-nginx b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-nginx new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-profile b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-profile new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/services.d/backend/run b/root/etc/services.d/backend/run deleted file mode 100644 index 3b86749..0000000 --- a/root/etc/services.d/backend/run +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/with-contenv bash - -cd /emulatorjs || exit -HOME=/data exec \ - s6-setuidgid abc node index.js diff --git a/root/etc/services.d/ipfs/run b/root/etc/services.d/ipfs/run deleted file mode 100644 index f304e0b..0000000 --- a/root/etc/services.d/ipfs/run +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/with-contenv bash - -HOME=/data exec \ - s6-setuidgid abc ipfs daemon diff --git a/root/etc/services.d/nginx/run b/root/etc/services.d/nginx/run deleted file mode 100644 index a8c1516..0000000 --- a/root/etc/services.d/nginx/run +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/with-contenv bash - -if pgrep -f "[n]ginx:" > /dev/null; then - pkill -ef [n]ginx: -fi - -exec /usr/sbin/nginx -c /etc/nginx/nginx.conf diff --git a/root/etc/services.d/profile/run b/root/etc/services.d/profile/run deleted file mode 100644 index 534c01c..0000000 --- a/root/etc/services.d/profile/run +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/with-contenv bash - -cd /emulatorjs || exit -HOME=/config exec \ - s6-setuidgid abc node profile.js