ARG ARCH= FROM ${ARCH}alpine:3.13 as base-php7 LABEL Maintainer="Ernesto Serrano " \ Description="Lightweight container with Nginx & PHP-FPM based on Alpine Linux." # Install packages RUN apk --no-cache add \ php7 \ php7-fpm \ php7-opcache \ php7-pecl-apcu \ php7-mysqli \ php7-pgsql \ php7-json \ php7-openssl \ php7-curl \ php7-zlib \ php7-soap \ php7-xml \ php7-fileinfo \ php7-phar \ php7-intl \ php7-dom \ php7-xmlreader \ php7-ctype \ php7-session \ php7-iconv \ php7-tokenizer \ php7-xmlrpc \ php7-zip \ php7-simplexml \ php7-mbstring \ php7-gd \ nginx \ runit \ curl \ # php7-pdo \ # php7-pdo_pgsql \ # php7-pdo_mysql \ # php7-pdo_sqlite \ # php7-bz2 \ # Bring in gettext so we can get `envsubst`, then throw # the rest away. To do this, we need to install `gettext` # then move `envsubst` out of the way so `gettext` can # be deleted completely, then move `envsubst` back. && apk add --no-cache --virtual .gettext gettext \ && mv /usr/bin/envsubst /tmp/ \ && runDeps="$( \ scanelf --needed --nobanner /tmp/envsubst \ | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \ | sort -u \ | xargs -r apk info --installed \ | sort -u \ )" \ && apk add --no-cache $runDeps \ && apk del .gettext \ && mv /tmp/envsubst /usr/local/bin/ \ # Remove alpine cache && rm -rf /var/cache/apk/* \ # Remove default server definition && rm /etc/nginx/conf.d/default.conf # Make sure files/folders needed by the processes are accessable when they run under the nobody user # && chown -R nobody.nobody /run \ # && chown -R nobody.nobody /var/lib/nginx \ # && chown -R nobody.nobody /var/log/nginx # Add configuration files #COPY --chown=nobody rootfs/ / COPY rootfs-php7/rootfs/ / # Switch to use a non-root user from here on #USER nobody # Add application WORKDIR /var/www/html # Expose the port nginx is reachable on EXPOSE 8080 # Let runit start nginx & php-fpm CMD [ "/bin/docker-entrypoint.sh" ] # Configure a healthcheck to validate that everything is up&running HEALTHCHECK --timeout=10s CMD curl --silent --fail http://127.0.0.1:8080/fpm-ping ENV client_max_body_size=2M \ clear_env=no \ allow_url_fopen=On \ allow_url_include=Off \ display_errors=Off \ file_uploads=On \ max_execution_time=0 \ max_input_time=-1 \ max_input_vars=1000 \ memory_limit=128M \ post_max_size=8M \ upload_max_filesize=2M \ zlib.output_compression=On ARG ARCH= #FROM ${ARCH}erseco/alpine-php7-webserver AS base FROM base-php7 LABEL maintainer="Ernesto Serrano " #USER root COPY rootfs / #COPY 02-configure-moodle.sh docker-entrypoint-init.d/02-configure-moodle.sh #COPY --chown=nobody rootfs/ / # crond needs root, so install dcron and cap package and set the capabilities # on dcron binary https://github.com/inter169/systs/blob/master/alpine/crond/README.md RUN apk add --no-cache dcron libcap && \ # chown nobody:nobody /usr/sbin/crond && \ setcap cap_setgid=ep /usr/sbin/crond #USER nobody # Change MOODLE_38_STABLE for new versions ENV MOODLE_URL=https://github.com/moodle/moodle/archive/MOODLE_310_STABLE.tar.gz \ LANG=en_US.UTF-8 \ LANGUAGE=en_US:en \ SITE_URL=http://localhost \ DB_TYPE=pgsql \ DB_HOST=postgres \ DB_PORT=5432 \ DB_NAME=moodle \ DB_USER=moodle \ DB_PASS=moodle \ DB_PREFIX=mdl_ \ SSLPROXY=false \ MOODLE_EMAIL=user@example.com \ MOODLE_LANGUAGE=en \ MOODLE_SITENAME=New-Site \ MOODLE_USERNAME=moodleuser \ MOODLE_PASSWORD=PLEASE_CHANGEME \ SMTP_HOST=smtp.gmail.com \ SMTP_PORT=587 \ SMTP_USER=your_email@gmail.com \ SMTP_PASSWORD=your_password \ SMTP_PROTOCOL=tls \ MOODLE_MAIL_NOREPLY_ADDRESS=noreply@localhost \ MOODLE_MAIL_PREFIX=[moodle] \ client_max_body_size=50M \ post_max_size=50M \ upload_max_filesize=50M \ max_input_vars=1000 #USER nobody #RUN curl --location $MOODLE_URL | tar xz --strip-components=1 -C /var/www/html/ #FROM erseco/alpine-moodle #FROM base #USER root #RUN chmod a+rwx -R /var/www/html #USER nobody #RUN curl --location https://moodle.org/plugins/download.php/23298/auth_oidc_moodle310_2020110900.zip > auth_oidc.zip #RUN unzip auth_oidc.zip -d /var/www/html/auth/ #RUN rm auth_oidc.zip #RUN curl --location https://moodle.org/plugins/download.php/23360/mod_jitsi_moodle310_2021020300.zip > jitsi.zip #RUN unzip jitsi.zip -d /var/www/html/mod/ #RUN rm jitsi.zip #RUN curl --location https://moodle.org/plugins/download.php/23294/mod_bigbluebuttonbn_moodle310_2019101004.zip > bbb.zip #RUN unzip bbb.zip -d /var/www/html/mod/ #RUN rm bbb.zip #ADD plugins/auth_saml2.zip /var/www/html/ #RUN curl --location https://moodle.org/plugins/download.php/20505/auth_saml2_moodle37_2019110701.zip > auth_saml2.zip #RUN unzip auth_saml2.zip -d /var/www/html/auth/ #RUN rm auth_saml2.zip