From b9d217eb5f74192b34f16ffa5b3d19f2da24a135 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emmanuel=20BENO=C3=8ET?= <tseeker@nocternity.net> Date: Mon, 30 Dec 2024 22:50:05 +0100 Subject: [PATCH] chore: prepare repo for use with Docker --- Dockerfile | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++ run-lwb5.sh | 21 ++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 Dockerfile create mode 100755 run-lwb5.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..67a93d5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,64 @@ +FROM debian:12-slim +ADD . /opt/lwb5 +RUN <<EOF + set -e + export DEBIAN_FRONTEND=noninteractive + export DEBCONF_NONINTERACTIVE_SEEN=true + apt-get update && apt-get dist-upgrade -uy + apt-get -y install lsb-release ca-certificates curl + curl -sSLo /tmp/debsuryorg-archive-keyring.deb \ + https://packages.sury.org/debsuryorg-archive-keyring.deb + dpkg -i /tmp/debsuryorg-archive-keyring.deb + echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" \ + > /etc/apt/sources.list.d/php.list + apt-get update + apt-get install -y apache2 libapache2-mod-php8.3 \ + php8.3-cli php8.3-opcache php8.3-pgsql \ + php8.3-xml socat + a2dismod mpm_event + a2enmod mpm_prefork + adduser --system --group \ + --shell '/usr/bin/php /opt/lwb5/scripts/ticks.php' \ + --comment 'LWB5 Ticks' \ + --home /opt/lwb5 --no-create-home \ + lwticks + /bin/echo -e "Listen 80\nListen 81" > /etc/apache2/ports.conf + cat > /etc/apache2/sites-available/lwb5-main.conf <<EOC +<VirtualHost *:80> + ServerAdmin webmaster@localhost + DocumentRoot /opt/lwb5/site + ErrorLog /dev/stderr + CustomLog /dev/stdout combined + <Directory /opt/lwb5/site> + Require all granted + php_flag log_errors on + php_value error_log syslog + </Directory> + <Files "*.inc"> + Require all denied + </Files> +</VirtualHost> +EOC + cat > /etc/apache2/sites-available/lwb5-admin.conf <<EOC +<VirtualHost *:81> + ServerAdmin webmaster@localhost + DocumentRoot /opt/lwb5/admin + ErrorLog /dev/stderr + CustomLog /dev/stdout combined + <Directory /opt/lwb5/admin> + Require all granted + php_flag log_errors on + php_value error_log syslog + </Directory> + <Files "*.inc"> + Require all denied + </Files> +</VirtualHost> +EOC + a2dissite 000-default + a2ensite lwb5-main + a2ensite lwb5-admin +EOF + +EXPOSE 80 81 +ENTRYPOINT ["/opt/lwb5/run-lwb5.sh"] diff --git a/run-lwb5.sh b/run-lwb5.sh new file mode 100755 index 0000000..1b587df --- /dev/null +++ b/run-lwb5.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +socat -u \ + UNIX-LISTEN:/dev/log,reuseaddr,mode=666,fork \ + SYSTEM:"(sed -z 's/$/\\\\n/'; /bin/echo)" \ + & + +#perl /opt/lwb5/scripts/control.pl --start +#perl /opt/lwb5/scripts/control.pl TMINIT + +: "${APACHE_CONFDIR:=/etc/apache2}" +: "${APACHE_RUN_DIR:=/run/apache2}" +: "${APACHE_PID_FILE:=$APACHE_RUN_DIR/apache2.pid}" +: "${APACHE_LOG_DIR:=/var/log/apache2}" +: "${APACHE_RUN_USER:=www-data}" +: "${APACHE_RUN_GROUP:=www-data}" +rm -f "$APACHE_PID_FILE" + +export APACHE_CONFDIR APACHE_RUN_DIR APACHE_PID_FILE \ + APACHE_LOG_DIR APACHE_RUN_USER APACHE_RUN_GROUP +exec /usr/sbin/apache2 -DFOREGROUND "$@"