Sign inSign up

simonrupf/php

By simonrupf

•Updated 3 months ago

Nginx Unit application server for running PHP web applications.

Image
0

10K+

Dockerfile
FROM alpine:3.12.1

ENV S6RELEASE v2.1.0.2
ENV S6URL     https://github.com/just-containers/s6-overlay/releases/download/
ENV S6_READ_ONLY_ROOT 1

RUN \
# Install dependencies
    apk upgrade --no-cache && \
    apk add --no-cache \
        nginx \
        php7-fpm \
        php7-opcache \
        tzdata \
    && \
# Remove (some of the) default nginx config
    rm -rf \
        /etc/nginx.conf \
        /etc/nginx/conf.d \
        /etc/nginx/sites-* \
        /etc/php7/php-fpm.d/www.conf \
    && \
# Ensure nginx logs, even if the config has errors, are written to stderr
    ln -s /dev/stderr /var/log/nginx/error.log

# Install s6 overlay for service management
RUN apk add --no-cache gnupg && \
    export GNUPGHOME="$(mktemp -d)" && \
    gpg2 --list-public-keys || /bin/true && \
    wget -qO - https://keybase.io/justcontainers/key.asc | gpg2 --import - && \
    cd /tmp && \
    wget -qO - ${S6URL}${S6RELEASE}/s6-overlay-amd64.tar.gz.sig > s6-overlay-amd64.tar.gz.sig && \
    wget -qO - ${S6URL}${S6RELEASE}/s6-overlay-amd64.tar.gz > s6-overlay-amd64.tar.gz && \
    gpg2 --verify s6-overlay-amd64.tar.gz.sig && \
    tar xzf s6-overlay-amd64.tar.gz -C / && \
    apk del gnupg && \
    rm -rf "${GNUPGHOME}" /tmp/*

COPY etc /etc

# Support running s6 under a non-root user
RUN mkdir /etc/services.d/nginx/supervise /etc/services.d/php-fpm7/supervise && \
    mkfifo /etc/services.d/nginx/supervise/control && \
    mkfifo /etc/services.d/php-fpm7/supervise/control && \
    chown -R nginx:www-data /etc/services.d /etc/s6 /run

# user nginx, group www-data
USER 100:82
EXPOSE 8080/tcp
VOLUME /run /tmp /var/lib/nginx/tmp
WORKDIR /var/www

ENTRYPOINT ["/init"]