Upload via GUI (24 Dateien)
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# Plugin- und Theme-Webseite als Docker-Image.
|
||||
#
|
||||
# Admin-Zugang und Signierschlüssel werden beim BAUEN fest in das Image geschrieben: config.php ist schreibgeschützt und
|
||||
# 'locked'. Im laufenden Container lässt sich nichts davon per Umgebungsvariable, Volume oder Konfigurationsdatei ändern.
|
||||
# Zum Ändern wird das Image neu gebaut. Gebaut wird mit docker-build.ps1 (Windows) bzw. docker-build.sh (Linux/macOS).
|
||||
|
||||
FROM php:8.3-apache
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends libzip-dev \
|
||||
&& docker-php-ext-install zip \
|
||||
&& a2enmod rewrite headers \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# PHP: Uploads bis 12 MB (Pakete sind auf 10 MB begrenzt), keine Fehlerausgabe im Browser, Apache verrät keine Versionen
|
||||
RUN { echo 'upload_max_filesize=12M'; echo 'post_max_size=14M'; echo 'display_errors=Off'; echo 'log_errors=On'; echo 'expose_php=Off'; } > /usr/local/etc/php/conf.d/plugin-site.ini \
|
||||
&& { echo 'ServerTokens Prod'; echo 'ServerSignature Off'; echo '<Directory /var/www/html>'; echo ' AllowOverride All'; echo ' Require all granted'; echo '</Directory>'; } > /etc/apache2/conf-available/plugin-site.conf \
|
||||
&& a2enconf plugin-site
|
||||
|
||||
WORKDIR /var/www/html
|
||||
COPY . /var/www/html/
|
||||
COPY docker-bake.php /tmp/docker-bake.php
|
||||
RUN rm -rf config.php storage Dockerfile docker-compose.yml docker-build.ps1 docker-build.sh docker-bake.php Caddyfile .dockerignore
|
||||
|
||||
ARG BASE_URL
|
||||
ARG SITE_NAME="DeskHub Plugins und Themes"
|
||||
ARG ADMIN_USER=admin
|
||||
|
||||
# Zugangsdaten fest einbauen. Passwort-Hash und Signierschlüssel kommen als BuildKit-Secrets und stehen nicht in "docker history".
|
||||
RUN --mount=type=secret,id=admin_hash,required=true \
|
||||
--mount=type=secret,id=signing_key,required=true \
|
||||
--mount=type=secret,id=catalog_key,required=true \
|
||||
mkdir -p /opt/plugin-site-secure /data \
|
||||
&& php /tmp/docker-bake.php \
|
||||
&& rm /tmp/docker-bake.php \
|
||||
&& chown -R root:root /var/www/html \
|
||||
&& chown root:www-data /var/www/html/config.php /opt/plugin-site-secure /opt/plugin-site-secure/herausgeber-privat.pem \
|
||||
&& chmod 0440 /var/www/html/config.php /opt/plugin-site-secure/herausgeber-privat.pem \
|
||||
&& chmod 0750 /opt/plugin-site-secure \
|
||||
&& chmod -R go-w /var/www/html \
|
||||
&& chown www-data:www-data /data
|
||||
|
||||
# Beschreibbar ist nur /data (Pakete und Datenbank), alles andere bleibt unverändert
|
||||
VOLUME ["/data"]
|
||||
EXPOSE 80
|
||||
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s CMD php -r 'exit(@file_get_contents("http://127.0.0.1/health.php") === "ok" ? 0 : 1);'
|
||||
Reference in New Issue
Block a user