Skip to content

Commit 5b7682f

Browse files
committed
Update s6-overlay and move processes to new format
1 parent b30fcb5 commit 5b7682f

File tree

24 files changed

+97
-63
lines changed

24 files changed

+97
-63
lines changed

docker/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \
2525
&& rm -rf /var/lib/apt/lists/*
2626

2727
# s6 overlay
28-
COPY scripts/install-s6 /tmp/install-s6
28+
COPY docker/scripts/install-s6 /tmp/install-s6
2929
RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6
3030

3131
EXPOSE 80 81 443

docker/dev/Dockerfile

+3-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ENV S6_LOGGING=0 \
77

88
RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \
99
&& apt-get update \
10-
&& apt-get install -y certbot jq python3-pip logrotate \
10+
&& apt-get install -y jq python3-pip logrotate \
1111
&& apt-get clean \
1212
&& rm -rf /var/lib/apt/lists/*
1313

@@ -21,9 +21,8 @@ RUN rm -f /etc/nginx/conf.d/production.conf
2121
RUN chmod 644 /etc/logrotate.d/nginx-proxy-manager
2222

2323
# s6 overlay
24-
RUN curl -L -o /tmp/s6-overlay-amd64.tar.gz "https://github.com/just-containers/s6-overlay/releases/download/v1.22.1.0/s6-overlay-amd64.tar.gz" \
25-
&& tar -xzf /tmp/s6-overlay-amd64.tar.gz -C /
24+
COPY scripts/install-s6 /tmp/install-s6
25+
RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6
2626

2727
EXPOSE 80 81 443
2828
ENTRYPOINT [ "/init" ]
29-

docker/rootfs/etc/s6-overlay/s6-rc.d/backend/dependencies.d/prepare

Whitespace-only changes.

docker/rootfs/etc/services.d/manager/run docker/rootfs/etc/s6-overlay/s6-rc.d/backend/run

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
#!/usr/bin/with-contenv bash
1+
#!/command/with-contenv bash
2+
# shellcheck shell=bash
23

3-
mkdir -p /data/letsencrypt-acme-challenge
4-
5-
cd /app || echo
4+
set -e
65

6+
echo "❯ Starting backend ..."
77
if [ "$DEVELOPMENT" == "true" ]; then
88
cd /app || exit 1
99
# If yarn install fails: add --verbose --network-concurrency 1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
longrun

docker/rootfs/etc/s6-overlay/s6-rc.d/frontend/dependencies.d/prepare

Whitespace-only changes.

docker/rootfs/etc/services.d/frontend/run docker/rootfs/etc/s6-overlay/s6-rc.d/frontend/run

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
#!/usr/bin/with-contenv bash
1+
#!/command/with-contenv bash
2+
# shellcheck shell=bash
3+
4+
set -e
25

36
# This service is DEVELOPMENT only.
47

Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
longrun

docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/prepare

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/command/with-contenv bash
2+
# shellcheck shell=bash
3+
4+
set -e
5+
6+
echo "❯ Starting nginx ..."
7+
exec nginx
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
longrun

docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/dependencies.d/base

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/command/with-contenv bash
2+
# shellcheck shell=bash
3+
4+
set -e
5+
6+
DATA_PATH=/data
7+
8+
# Ensure /data is mounted
9+
if [ ! -d "$DATA_PATH" ]; then
10+
echo '--------------------------------------'
11+
echo "ERROR: $DATA_PATH is not mounted! Check your docker configuration."
12+
echo '--------------------------------------'
13+
/run/s6/basedir/bin/halt
14+
exit 1
15+
fi
16+
17+
echo "❯ Checking folder structure ..."
18+
19+
# Create required folders
20+
mkdir -p /tmp/nginx/body \
21+
/run/nginx \
22+
/var/log/nginx \
23+
/data/nginx \
24+
/data/custom_ssl \
25+
/data/logs \
26+
/data/access \
27+
/data/nginx/default_host \
28+
/data/nginx/default_www \
29+
/data/nginx/proxy_host \
30+
/data/nginx/redirection_host \
31+
/data/nginx/stream \
32+
/data/nginx/dead_host \
33+
/data/nginx/temp \
34+
/var/lib/nginx/cache/public \
35+
/var/lib/nginx/cache/private \
36+
/var/cache/nginx/proxy_temp \
37+
/data/letsencrypt-acme-challenge
38+
39+
touch /var/log/nginx/error.log && chmod 777 /var/log/nginx/error.log && chmod -R 777 /var/cache/nginx
40+
chown root /tmp/nginx
41+
42+
# Dynamically generate resolvers file, if resolver is IPv6, enclose in `[]`
43+
# thanks @tfmm
44+
if [ "$DISABLE_IPV6" == "true" ] || [ "$DISABLE_IPV6" == "on" ] || [ "$DISABLE_IPV6" == "1" ] || [ "$DISABLE_IPV6" == "yes" ];
45+
then
46+
echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" { sub(/%.*$/,"",$2); print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf) ipv6=off valid=10s;" > /etc/nginx/conf.d/include/resolvers.conf
47+
else
48+
echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" { sub(/%.*$/,"",$2); print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf) valid=10s;" > /etc/nginx/conf.d/include/resolvers.conf
49+
fi
50+
51+
# Handle IPV6 settings
52+
/bin/handle-ipv6-setting /etc/nginx/conf.d
53+
/bin/handle-ipv6-setting /data/nginx
54+
55+
echo
56+
echo "-------------------------------------
57+
_ _ ____ __ __
58+
| \ | | _ \| \/ |
59+
| \| | |_) | |\/| |
60+
| |\ | __/| | | |
61+
|_| \_|_| |_| |_|
62+
-------------------------------------
63+
"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
oneshot
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# shellcheck shell=bash
2+
/etc/s6-overlay/s6-rc.d/prepare/script.sh

docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/backend

Whitespace-only changes.

docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/frontend

Whitespace-only changes.

docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx

Whitespace-only changes.

docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/prepare

Whitespace-only changes.

docker/rootfs/etc/services.d/frontend/finish

-6
This file was deleted.

docker/rootfs/etc/services.d/manager/finish

-3
This file was deleted.

docker/rootfs/etc/services.d/nginx/finish

-1
This file was deleted.

docker/rootfs/etc/services.d/nginx/run

-38
This file was deleted.

scripts/install-s6 docker/scripts/install-s6

+9-5
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ BLUE='\E[1;34m'
88
GREEN='\E[1;32m'
99
RESET='\E[0m'
1010

11-
S6_OVERLAY_VERSION=1.22.1.0
12-
TARGETPLATFORM=$1
11+
S6_OVERLAY_VERSION=3.1.4.1
12+
TARGETPLATFORM=${1:unspecified}
1313

1414
# Determine the correct binary file for the architecture given
1515
case $TARGETPLATFORM in
@@ -22,13 +22,17 @@ case $TARGETPLATFORM in
2222
;;
2323

2424
*)
25-
S6_ARCH=amd64
25+
S6_ARCH=x86_64
2626
;;
2727
esac
2828

2929
echo -e "${BLUE}${CYAN}Installing S6-overlay v${S6_OVERLAY_VERSION} for ${YELLOW}${TARGETPLATFORM} (${S6_ARCH})${RESET}"
3030

31-
curl -L -o "/tmp/s6-overlay-${S6_ARCH}.tar.gz" "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.gz" \
32-
&& tar -xzf "/tmp/s6-overlay-${S6_ARCH}.tar.gz" -C /
31+
curl -L -o '/tmp/s6-overlay-noarch.tar.xz' "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz"
32+
curl -L -o "/tmp/s6-overlay-${S6_ARCH}.tar.xz" "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz"
33+
tar -C / -Jxpf '/tmp/s6-overlay-noarch.tar.xz'
34+
tar -C / -Jxpf "/tmp/s6-overlay-${S6_ARCH}.tar.xz"
35+
36+
rm -rf "/tmp/s6-overlay-${S6_ARCH}.tar.xz"
3337

3438
echo -e "${BLUE}${GREEN}S6-overlay install Complete${RESET}"

0 commit comments

Comments
 (0)