mirror of
				https://github.com/NginxProxyManager/nginx-proxy-manager.git
				synced 2025-10-31 07:43:33 +00:00 
			
		
		
		
	Update s6-overlay and move processes to new format
This commit is contained in:
		| @@ -25,7 +25,7 @@ RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ | |||||||
| 	&& rm -rf /var/lib/apt/lists/* | 	&& rm -rf /var/lib/apt/lists/* | ||||||
|  |  | ||||||
| # s6 overlay | # s6 overlay | ||||||
| COPY scripts/install-s6 /tmp/install-s6 | COPY docker/scripts/install-s6 /tmp/install-s6 | ||||||
| RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6 | RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6 | ||||||
|  |  | ||||||
| EXPOSE 80 81 443 | EXPOSE 80 81 443 | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ ENV S6_LOGGING=0 \ | |||||||
|  |  | ||||||
| RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ | RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ | ||||||
| 	&& apt-get update \ | 	&& apt-get update \ | ||||||
| 	&& apt-get install -y certbot jq python3-pip logrotate \ | 	&& apt-get install -y jq python3-pip logrotate \ | ||||||
| 	&& apt-get clean \ | 	&& apt-get clean \ | ||||||
| 	&& rm -rf /var/lib/apt/lists/* | 	&& rm -rf /var/lib/apt/lists/* | ||||||
|  |  | ||||||
| @@ -21,9 +21,8 @@ RUN rm -f /etc/nginx/conf.d/production.conf | |||||||
| RUN chmod 644 /etc/logrotate.d/nginx-proxy-manager | RUN chmod 644 /etc/logrotate.d/nginx-proxy-manager | ||||||
|  |  | ||||||
| # s6 overlay | # s6 overlay | ||||||
| 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" \ | COPY scripts/install-s6 /tmp/install-s6 | ||||||
| 	&& tar -xzf /tmp/s6-overlay-amd64.tar.gz -C / | RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6 | ||||||
|  |  | ||||||
| EXPOSE 80 81 443 | EXPOSE 80 81 443 | ||||||
| ENTRYPOINT [ "/init" ] | ENTRYPOINT [ "/init" ] | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,9 +1,9 @@ | |||||||
| #!/usr/bin/with-contenv bash | #!/command/with-contenv bash | ||||||
|  | # shellcheck shell=bash | ||||||
| 
 | 
 | ||||||
| mkdir -p /data/letsencrypt-acme-challenge | set -e | ||||||
| 
 |  | ||||||
| cd /app || echo |  | ||||||
| 
 | 
 | ||||||
|  | echo "❯ Starting backend ..." | ||||||
| if [ "$DEVELOPMENT" == "true" ]; then | if [ "$DEVELOPMENT" == "true" ]; then | ||||||
| 	cd /app || exit 1 | 	cd /app || exit 1 | ||||||
| 	# If yarn install fails: add --verbose --network-concurrency 1 | 	# If yarn install fails: add --verbose --network-concurrency 1 | ||||||
							
								
								
									
										1
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/backend/type
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/backend/type
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | longrun | ||||||
| @@ -1,4 +1,7 @@ | |||||||
| #!/usr/bin/with-contenv bash | #!/command/with-contenv bash | ||||||
|  | # shellcheck shell=bash | ||||||
|  | 
 | ||||||
|  | set -e | ||||||
| 
 | 
 | ||||||
| # This service is DEVELOPMENT only. | # This service is DEVELOPMENT only. | ||||||
| 
 | 
 | ||||||
							
								
								
									
										1
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/frontend/type
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/frontend/type
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | longrun | ||||||
							
								
								
									
										7
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/run
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/run
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | #!/command/with-contenv bash | ||||||
|  | # shellcheck shell=bash | ||||||
|  |  | ||||||
|  | set -e | ||||||
|  |  | ||||||
|  | echo "❯ Starting nginx ..." | ||||||
|  | exec nginx | ||||||
							
								
								
									
										1
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/type
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/type
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | longrun | ||||||
							
								
								
									
										63
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/script.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										63
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/script.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,63 @@ | |||||||
|  | #!/command/with-contenv bash | ||||||
|  | # shellcheck shell=bash | ||||||
|  |  | ||||||
|  | set -e | ||||||
|  |  | ||||||
|  | DATA_PATH=/data | ||||||
|  |  | ||||||
|  | # Ensure /data is mounted | ||||||
|  | if [ ! -d "$DATA_PATH" ]; then | ||||||
|  | 	echo '--------------------------------------' | ||||||
|  | 	echo "ERROR: $DATA_PATH is not mounted! Check your docker configuration." | ||||||
|  | 	echo '--------------------------------------' | ||||||
|  | 	/run/s6/basedir/bin/halt | ||||||
|  | 	exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | echo "❯ Checking folder structure ..." | ||||||
|  |  | ||||||
|  | # Create required folders | ||||||
|  | mkdir -p /tmp/nginx/body \ | ||||||
|  | 	/run/nginx \ | ||||||
|  | 	/var/log/nginx \ | ||||||
|  | 	/data/nginx \ | ||||||
|  | 	/data/custom_ssl \ | ||||||
|  | 	/data/logs \ | ||||||
|  | 	/data/access \ | ||||||
|  | 	/data/nginx/default_host \ | ||||||
|  | 	/data/nginx/default_www \ | ||||||
|  | 	/data/nginx/proxy_host \ | ||||||
|  | 	/data/nginx/redirection_host \ | ||||||
|  | 	/data/nginx/stream \ | ||||||
|  | 	/data/nginx/dead_host \ | ||||||
|  | 	/data/nginx/temp \ | ||||||
|  | 	/var/lib/nginx/cache/public \ | ||||||
|  | 	/var/lib/nginx/cache/private \ | ||||||
|  | 	/var/cache/nginx/proxy_temp \ | ||||||
|  | 	/data/letsencrypt-acme-challenge | ||||||
|  |  | ||||||
|  | touch /var/log/nginx/error.log && chmod 777 /var/log/nginx/error.log && chmod -R 777 /var/cache/nginx | ||||||
|  | chown root /tmp/nginx | ||||||
|  |  | ||||||
|  | # Dynamically generate resolvers file, if resolver is IPv6, enclose in `[]` | ||||||
|  | # thanks @tfmm | ||||||
|  | if [ "$DISABLE_IPV6" == "true" ] || [ "$DISABLE_IPV6" == "on" ] || [ "$DISABLE_IPV6" == "1" ] || [ "$DISABLE_IPV6" == "yes" ]; | ||||||
|  | then | ||||||
|  | 	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 | ||||||
|  | else | ||||||
|  | 	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 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | # Handle IPV6 settings | ||||||
|  | /bin/handle-ipv6-setting /etc/nginx/conf.d | ||||||
|  | /bin/handle-ipv6-setting /data/nginx | ||||||
|  |  | ||||||
|  | echo | ||||||
|  | echo "------------------------------------- | ||||||
|  |  _   _ ____  __  __ | ||||||
|  | | \ | |  _ \|  \/  | | ||||||
|  | |  \| | |_) | |\/| | | ||||||
|  | | |\  |  __/| |  | | | ||||||
|  | |_| \_|_|   |_|  |_| | ||||||
|  | ------------------------------------- | ||||||
|  | " | ||||||
							
								
								
									
										1
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/type
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/type
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | oneshot | ||||||
							
								
								
									
										2
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/up
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/up
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | # shellcheck shell=bash | ||||||
|  | /etc/s6-overlay/s6-rc.d/prepare/script.sh | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| #!/usr/bin/execlineb -S1 |  | ||||||
| if { s6-test ${1} -ne 0 } |  | ||||||
| if { s6-test ${1} -ne 256 } |  | ||||||
|  |  | ||||||
| s6-svscanctl -t /var/run/s6/services |  | ||||||
|  |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| #!/usr/bin/with-contenv bash |  | ||||||
|  |  | ||||||
| s6-svscanctl -t /var/run/s6/services |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| /bin/true |  | ||||||
| @@ -1,38 +0,0 @@ | |||||||
| #!/usr/bin/with-contenv bash |  | ||||||
|  |  | ||||||
| # Create required folders |  | ||||||
| mkdir -p /tmp/nginx/body \ |  | ||||||
| 	/run/nginx \ |  | ||||||
| 	/var/log/nginx \ |  | ||||||
| 	/data/nginx \ |  | ||||||
| 	/data/custom_ssl \ |  | ||||||
| 	/data/logs \ |  | ||||||
| 	/data/access \ |  | ||||||
| 	/data/nginx/default_host \ |  | ||||||
| 	/data/nginx/default_www \ |  | ||||||
| 	/data/nginx/proxy_host \ |  | ||||||
| 	/data/nginx/redirection_host \ |  | ||||||
| 	/data/nginx/stream \ |  | ||||||
| 	/data/nginx/dead_host \ |  | ||||||
| 	/data/nginx/temp \ |  | ||||||
| 	/var/lib/nginx/cache/public \ |  | ||||||
| 	/var/lib/nginx/cache/private \ |  | ||||||
| 	/var/cache/nginx/proxy_temp |  | ||||||
|  |  | ||||||
| touch /var/log/nginx/error.log && chmod 777 /var/log/nginx/error.log && chmod -R 777 /var/cache/nginx |  | ||||||
| chown root /tmp/nginx |  | ||||||
|  |  | ||||||
| # Dynamically generate resolvers file, if resolver is IPv6, enclose in `[]` |  | ||||||
| # thanks @tfmm |  | ||||||
| if [ "$DISABLE_IPV6" == "true" ] || [ "$DISABLE_IPV6" == "on" ] || [ "$DISABLE_IPV6" == "1" ] || [ "$DISABLE_IPV6" == "yes" ]; |  | ||||||
| then |  | ||||||
|   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 |  | ||||||
| else |  | ||||||
|   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 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # Handle IPV6 settings |  | ||||||
| /bin/handle-ipv6-setting /etc/nginx/conf.d |  | ||||||
| /bin/handle-ipv6-setting /data/nginx |  | ||||||
|  |  | ||||||
| exec nginx |  | ||||||
| @@ -8,8 +8,8 @@ BLUE='\E[1;34m' | |||||||
| GREEN='\E[1;32m' | GREEN='\E[1;32m' | ||||||
| RESET='\E[0m' | RESET='\E[0m' | ||||||
| 
 | 
 | ||||||
| S6_OVERLAY_VERSION=1.22.1.0 | S6_OVERLAY_VERSION=3.1.4.1 | ||||||
| TARGETPLATFORM=$1 | TARGETPLATFORM=${1:unspecified} | ||||||
| 
 | 
 | ||||||
| # Determine the correct binary file for the architecture given | # Determine the correct binary file for the architecture given | ||||||
| case $TARGETPLATFORM in | case $TARGETPLATFORM in | ||||||
| @@ -22,13 +22,17 @@ case $TARGETPLATFORM in | |||||||
| 		;; | 		;; | ||||||
| 
 | 
 | ||||||
| 	*) | 	*) | ||||||
| 		S6_ARCH=amd64 | 		S6_ARCH=x86_64 | ||||||
| 		;; | 		;; | ||||||
| esac | esac | ||||||
| 
 | 
 | ||||||
| echo -e "${BLUE}❯ ${CYAN}Installing S6-overlay v${S6_OVERLAY_VERSION} for ${YELLOW}${TARGETPLATFORM} (${S6_ARCH})${RESET}" | echo -e "${BLUE}❯ ${CYAN}Installing S6-overlay v${S6_OVERLAY_VERSION} for ${YELLOW}${TARGETPLATFORM} (${S6_ARCH})${RESET}" | ||||||
| 
 | 
 | ||||||
| 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" \ | 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" | ||||||
| 	&& tar -xzf "/tmp/s6-overlay-${S6_ARCH}.tar.gz" -C / | 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" | ||||||
|  | tar -C / -Jxpf '/tmp/s6-overlay-noarch.tar.xz' | ||||||
|  | tar -C / -Jxpf "/tmp/s6-overlay-${S6_ARCH}.tar.xz" | ||||||
|  | 
 | ||||||
|  | rm -rf "/tmp/s6-overlay-${S6_ARCH}.tar.xz" | ||||||
| 
 | 
 | ||||||
| echo -e "${BLUE}❯ ${GREEN}S6-overlay install Complete${RESET}" | echo -e "${BLUE}❯ ${GREEN}S6-overlay install Complete${RESET}" | ||||||
		Reference in New Issue
	
	Block a user