forked from b1tsblog/webservice
Dockerfile hinzugefügt
This commit is contained in:
50
Dockerfile
Normal file
50
Dockerfile
Normal 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;'"]
|
Reference in New Issue
Block a user