initial release (nginx+php ok)

This commit is contained in:
Paolo Asperti 2024-12-13 10:00:45 +01:00
commit fd3195a8b2
Signed by: paspo
GPG Key ID: 06D46905D19D5182
12 changed files with 127 additions and 0 deletions

15
Dockerfile Normal file
View File

@ -0,0 +1,15 @@
FROM alpine:3.21
RUN \
apk -U upgrade && \
apk add tini nginx gettext-envsubst openssh-server php84 php84-fpm php83 php83-fpm php82 php82-fpm
COPY rootfs /
VOLUME [ "/www", "/ssh" ]
ENV \
USERNAME=theuser \
PHP=none
ENTRYPOINT [ "/sbin/tini", "/app/entrypoint.sh" ]

21
rootfs/app/entrypoint.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
WEBROOT=/www
PHP=${PHP:-none}
USERNAME=${USERNAME:-theuser}
adduser -DH -h "${WEBROOT}" -G "nginx" -u "1000" "${USERNAME}"
chown "${USERNAME}:nginx" "${WEBROOT}" -R
find "${WEBROOT}" -type d -exec chmod 0755 {} \;
find "${WEBROOT}" -type f -exec chmod 0644 {} \;
envsubst < /app/nginx.conf.tpl > /etc/nginx/http.d/default.conf
case "${PHP}" in
"php84") /usr/sbin/php-fpm84 -D ;;
"php83") /usr/sbin/php-fpm83 -D ;;
"php82") /usr/sbin/php-fpm82 -D ;;
*) ;;
esac
nginx

46
rootfs/app/nginx.conf.tpl Normal file
View File

@ -0,0 +1,46 @@
error_log /dev/stdout info;
access_log /dev/stdout;
server {
listen 80 default_server;
listen [::]:80 default_server;
root /www;
# server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
index index.html index.htm;
# autoindex on;
# autoindex_exact_size off;
# autoindex_format html;
# autoindex_localtime on;
}
#error_page 404 /404.html;
location = /404.html {
internal;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
include /etc/nginx/custom.d/${PHP}.conf;
gzip on;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js image/x-icon font/woff2 font/woff application/x-font-woff;
gzip_vary on;
gzip_disable "msie6";
etag on;
if_modified_since exact;
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
}

View File

@ -0,0 +1 @@
daemon off;

View File

View File

@ -0,0 +1,6 @@
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

View File

@ -0,0 +1,6 @@
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

View File

@ -0,0 +1,6 @@
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

View File

@ -0,0 +1 @@
error_log = /dev/stderr

View File

@ -0,0 +1 @@
error_log = /dev/stderr

View File

@ -0,0 +1 @@
error_log = /dev/stderr

23
rootfs/www/index.html Normal file
View File

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>