🚢 Simplified docker builds (#456)

* Simplify docker builds

* Ignore docker and frontend scripts from PHP related checks

* Update docker development setup
This commit is contained in:
Darko Gjorgjijoski
2025-08-31 15:07:22 +02:00
committed by GitHub
parent 3ed91545d1
commit 23f6b1877f
16 changed files with 569 additions and 2051 deletions

View File

@@ -0,0 +1,56 @@
FROM --platform=$BUILDPLATFORM node AS static_builder
WORKDIR /var/www/html
COPY . /var/www/html
RUN yarn && yarn build
FROM nginx AS production
ENV PHP_FPM_HOST="php-fpm:9000"
COPY --chown=www-data:www-data . /var/www/html
COPY --from=static_builder --chown=www-data:www-data /var/www/html/public /var/www/html/public
# Map the PHP-FPM host from the PHP_FPM_HOST environment variable to an nging variable
RUN mkdir /etc/nginx/templates && cat <<EOF > /etc/nginx/templates/20-invoiceshelf.conf.template
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html/public;
# Set allowed "index" files
index index.html index.htm index.php;
server_name _;
charset utf-8;
# Set max upload to 2048M
client_max_body_size 2048M;
# Healthchecks: Set /healthcheck to be the healthcheck URL
location /healthcheck {
access_log off;
# set max 5 seconds for healthcheck
fastcgi_read_timeout 5s;
include fastcgi_params;
fastcgi_param SCRIPT_NAME /healthcheck;
fastcgi_param SCRIPT_FILENAME /healthcheck;
fastcgi_pass \${PHP_FPM_HOST};
}
# Have NGINX try searching for PHP files as well
location / {
try_files \$uri \$uri/ /index.php?\$query_string;
}
# Pass "*.php" files to PHP-FPM
location ~ \.php\$ {
fastcgi_pass \${PHP_FPM_HOST};
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
fastcgi_buffers 8 8k;
fastcgi_buffer_size 8k;
}
}
EOF