This commit is contained in:
parent
b043c27790
commit
d5e3e0148f
21
.drone.yml
21
.drone.yml
@ -24,3 +24,24 @@ steps:
|
|||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
- cron
|
- cron
|
||||||
|
|
||||||
|
- name: build_and_publish_php74
|
||||||
|
image: plugins/docker:linux-amd64
|
||||||
|
settings:
|
||||||
|
force_tag: true
|
||||||
|
password:
|
||||||
|
from_secret: docker_password
|
||||||
|
registry: docker.asperti.com
|
||||||
|
repo: docker.asperti.com/paspo/webserver-nginx
|
||||||
|
context: .
|
||||||
|
dockerfile: ./Dockerfile-php74
|
||||||
|
username:
|
||||||
|
from_secret: docker_username
|
||||||
|
tags:
|
||||||
|
- latest-php74
|
||||||
|
when:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- cron
|
||||||
|
20
Dockerfile-php74
Normal file
20
Dockerfile-php74
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
FROM alpine:3.15
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
apk -U upgrade && \
|
||||||
|
apk add tini nginx openssh-server \
|
||||||
|
php7 php7-fpm php7-mbstring php7-curl php7-ctype php7-dom php7-gd php7-json php7-openssl php7-session php7-simplexml php7-xml php7-zip \
|
||||||
|
php7-apcu php7-opcache php7-pecl-yaml php7-sqlite3 php7-mysqli
|
||||||
|
|
||||||
|
COPY rootfs-php74 /
|
||||||
|
|
||||||
|
VOLUME [ "/data/www", "/ssh" ]
|
||||||
|
|
||||||
|
ENV \
|
||||||
|
USERNAME=theuser \
|
||||||
|
PHP=none \
|
||||||
|
PUID=1000 \
|
||||||
|
PGID=1000 \
|
||||||
|
TZ=Etc/UTC
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/sbin/tini", "/app/entrypoint.sh" ]
|
67
rootfs-php74/app/entrypoint.sh
Executable file
67
rootfs-php74/app/entrypoint.sh
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
WEBROOT=/data/www
|
||||||
|
PHP=${PHP:-none}
|
||||||
|
USERNAME=${USERNAME:-theuser}
|
||||||
|
PUID=${PUID:-1000}
|
||||||
|
GROUPNAME=${GROUPNAME:-thegroup}
|
||||||
|
PGID=${PGID:-1000}
|
||||||
|
RANDOMPWD=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 13)
|
||||||
|
addgroup -g "${PGID}" "${GROUPNAME}"
|
||||||
|
addgroup nginx "${GROUPNAME}"
|
||||||
|
adduser -DH -h "${WEBROOT}" -G "${GROUPNAME}" -u "${PUID}" "${USERNAME}"
|
||||||
|
printf '%s\n%s' "${RANDOMPWD}" "${RANDOMPWD}" | passwd "${USERNAME}"
|
||||||
|
echo "password for the user \"${USERNAME}\" is: ${RANDOMPWD}"
|
||||||
|
|
||||||
|
chown "${PUID}:${GROUPNAME}" "${WEBROOT}" -R
|
||||||
|
find "${WEBROOT}" -type d -exec chmod 0755 {} \;
|
||||||
|
find "${WEBROOT}" -type f -exec chmod 0644 {} \;
|
||||||
|
|
||||||
|
FPM_MAX_CHILDREN=${FPM_MAX_CHILDREN:-5}
|
||||||
|
FPM_START_SERVERS=${FPM_START_SERVERS:-1}
|
||||||
|
FPM_MIN_SPARE_SERVERS=${FPM_MIN_SPARE_SERVERS:-1}
|
||||||
|
FPM_MAX_SPARE_SERVERS=${FPM_MAX_SPARE_SERVERS:-3}
|
||||||
|
|
||||||
|
# set php config
|
||||||
|
case "${PHP}" in
|
||||||
|
"php7")
|
||||||
|
cat >"/etc/${PHP}/php-fpm-d/www.conf" <<EOF
|
||||||
|
[www]
|
||||||
|
user = ${USERNAME}
|
||||||
|
group = ${GROUPNAME}
|
||||||
|
listen = 127.0.0.1:9000
|
||||||
|
pm = dynamic
|
||||||
|
pm.max_children = ${FPM_MAX_CHILDREN}
|
||||||
|
pm.start_servers = ${FPM_START_SERVERS}
|
||||||
|
pm.min_spare_servers = ${FPM_MIN_SPARE_SERVERS}
|
||||||
|
pm.max_spare_servers = ${FPM_MAX_SPARE_SERVERS}
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# start php
|
||||||
|
case "${PHP}" in
|
||||||
|
"php7")
|
||||||
|
cp /app/nginx/php7.conf /etc/nginx/custom.d/
|
||||||
|
cp /app/nginx/default_php.conf /etc/nginx/http.d/default.conf
|
||||||
|
/usr/sbin/php-fpm7 -D
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
cp /app/nginx/default_nophp.conf /etc/nginx/http.d/default.conf
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# start ssh
|
||||||
|
for keytype in ecdsa rsa ed25519 ; do
|
||||||
|
if [ ! -r "/ssh/ssh_host_${keytype}_key" ] ; then
|
||||||
|
/usr/bin/ssh-keygen -t "${keytype}" -f "/ssh/ssh_host_${keytype}_key" -N ""
|
||||||
|
fi
|
||||||
|
chmod 0600 "/ssh/ssh_host_${keytype}_key"
|
||||||
|
chmod 0644 "/ssh/ssh_host_${keytype}_key.pub"
|
||||||
|
done
|
||||||
|
chmod 0700 "${WEBROOT}/.ssh"
|
||||||
|
/usr/sbin/sshd -e
|
||||||
|
|
||||||
|
# start nginx
|
||||||
|
nginx
|
33
rootfs-php74/app/nginx/default_nophp.conf
Normal file
33
rootfs-php74/app/nginx/default_nophp.conf
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
error_log /dev/stdout info;
|
||||||
|
access_log /dev/stdout;
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80 default_server;
|
||||||
|
listen [::]:80 default_server;
|
||||||
|
root /data/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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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";
|
||||||
|
|
||||||
|
include /etc/nginx/custom.d/*.conf;
|
||||||
|
}
|
33
rootfs-php74/app/nginx/default_php.conf
Normal file
33
rootfs-php74/app/nginx/default_php.conf
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
error_log /dev/stdout info;
|
||||||
|
access_log /dev/stdout;
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80 default_server;
|
||||||
|
listen [::]:80 default_server;
|
||||||
|
root /data/www;
|
||||||
|
# server_name localhost;
|
||||||
|
|
||||||
|
#access_log /var/log/nginx/host.access.log main;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
index index.php index.html index.htm;
|
||||||
|
|
||||||
|
# autoindex on;
|
||||||
|
# autoindex_exact_size off;
|
||||||
|
# autoindex_format html;
|
||||||
|
# autoindex_localtime on;
|
||||||
|
}
|
||||||
|
|
||||||
|
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";
|
||||||
|
|
||||||
|
include /etc/nginx/custom.d/*.conf;
|
||||||
|
}
|
6
rootfs-php74/app/nginx/php7.conf
Normal file
6
rootfs-php74/app/nginx/php7.conf
Normal 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;
|
||||||
|
}
|
23
rootfs-php74/data/www/index.html
Normal file
23
rootfs-php74/data/www/index.html
Normal 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>
|
1
rootfs-php74/etc/nginx/conf.d/nodaemon.conf
Normal file
1
rootfs-php74/etc/nginx/conf.d/nodaemon.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
daemon off;
|
0
rootfs-php74/etc/nginx/custom.d/.placeholder
Normal file
0
rootfs-php74/etc/nginx/custom.d/.placeholder
Normal file
1
rootfs-php74/etc/php7/php-fpm.d/errlog.conf
Normal file
1
rootfs-php74/etc/php7/php-fpm.d/errlog.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
error_log = /dev/stderr
|
1
rootfs-php74/etc/ssh/sshd_config.d/port.conf
Normal file
1
rootfs-php74/etc/ssh/sshd_config.d/port.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
Port 22
|
24
rootfs-php74/etc/ssh/sshd_config.d/sshd.conf
Normal file
24
rootfs-php74/etc/ssh/sshd_config.d/sshd.conf
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
HostKey /ssh/ssh_host_rsa_key
|
||||||
|
HostKey /ssh/ssh_host_ecdsa_key
|
||||||
|
HostKey /ssh/ssh_host_ed25519_key
|
||||||
|
|
||||||
|
#SyslogFacility AUTH
|
||||||
|
LogLevel INFO
|
||||||
|
LoginGraceTime 1m
|
||||||
|
PermitRootLogin no
|
||||||
|
PubkeyAuthentication yes
|
||||||
|
MaxAuthTries 3
|
||||||
|
PrintMotd no
|
||||||
|
|
||||||
|
AuthorizedKeysFile /ssh/authorized_keys
|
||||||
|
PasswordAuthentication no
|
||||||
|
|
||||||
|
AllowAgentForwarding no
|
||||||
|
AllowTcpForwarding no
|
||||||
|
GatewayPorts no
|
||||||
|
X11Forwarding no
|
||||||
|
|
||||||
|
Subsystem sftp internal-sftp
|
||||||
|
|
||||||
|
ChrootDirectory /data
|
||||||
|
ForceCommand internal-sftp -d /data/www
|
Loading…
Reference in New Issue
Block a user