Dockerfile hinzugefügt

This commit is contained in:
2025-05-03 22:50:18 +00:00
parent 1b1709981b
commit bbb29a2ea5

50
Dockerfile Normal file
View File

@@ -0,0 +1,50 @@
# ---- Build Stage (for Git clone only) ----
FROM alpine:3.21 AS builder
RUN apk add --no-cache git
WORKDIR /src
RUN git clone --depth 1 https://github.com/bludit/bludit.git .
# ---- Final Image ----
FROM alpine:3.21
# Install only needed runtime packages
RUN apk add --no-cache bash nginx \
php84 php84-fpm php84-opcache php84-gd php84-zlib php84-curl php84-bz2 php84-bcmath \
php84-exif php84-fileinfo php84-iconv php84-imap php84-intl php84-ldap php84-mbstring \
php84-mysqli php84-odbc php84-pdo php84-pdo_mysql php84-pdo_odbc php84-pdo_pgsql \
php84-pdo_sqlite php84-pdo_dblib php84-pear php84-pecl-imagick php84-pecl-memcache \
php84-pecl-memcached php84-pecl-mongodb php84-pecl-redis php84-pecl-smbclient \
php84-pecl-ssh2 php84-pecl-xdebug php84-pecl-yaml php84-pgsql php84-phar php84-phpdbg \
php84-session php84-simplexml php84-snmp php84-soap php84-sockets php84-sodium \
php84-sqlite3 php84-sysvmsg php84-tidy php84-xml php84-xmlreader php84-xmlwriter \
php84-xsl php84-zip php84-ctype php84-tokenizerphp84 php84-fpm php84-opcache php84-mysqli php84-session php84-xml php84-curl
# Add unprivileged user
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# Konfiguration kopieren
COPY nginx /etc/nginx
COPY php /etc/php84
# Web-Verzeichnis + App aus Build-Stage kopieren
RUN mkdir -p /usr/share/nginx/html
COPY --from=builder /src /usr/share/nginx/html
# Berechtigungen setzen
RUN chown -R appuser:appgroup /usr/share/nginx/html && chmod -R 755 /usr/share/nginx/html
# PHP run-Verzeichnis
RUN mkdir -p /var/run/php && chown appuser:appgroup /var/run/php
# Expose only necessary ports
EXPOSE 80 9000
# Volume für Webverzeichnis (persistenzfähig)
VOLUME ["/usr/share/nginx/html"]
# Als nicht-root Benutzer laufen
USER appuser
# CMD: Dienste starten
CMD ["/bin/sh", "-c", "php-fpm84 && nginx -g 'daemon off;'"]