FROM php:8-alpine RUN apk add --quiet --no-cache \ bash \ apache2 \ php-apache2 \ php-ctype \ php-phar \ php-gd \ php-openssl \ php-pdo \ php-pdo_mysql \ php-pdo_pgsql \ php-pdo_sqlite \ php-pgsql \ php-session \ php-sqlite3 # # use docker-php-extension-installer for automatically get the right packages installed # ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ # # Install extensions # RUN install-php-extensions iconv gd pdo pdo_mysql pdo_pgsql pgsql RUN ln -sf /dev/stdout /var/log/apache2/access.log && \ ln -sf /dev/stderr /var/log/apache2/error.log # Prepare files and folders RUN mkdir -p /speedtest/ # Copy sources COPY backend/ /speedtest/backend COPY results/*.php /speedtest/results/ COPY results/*.ttf /speedtest/results/ COPY *.js /speedtest/ COPY favicon.ico /speedtest/ COPY docker/servers.json /servers.json COPY docker/*.php /speedtest/ COPY docker/entrypoint.sh / # Prepare default environment variables ENV TITLE=LibreSpeed ENV MODE=standalone ENV PASSWORD=password ENV TELEMETRY=false ENV ENABLE_ID_OBFUSCATION=false ENV REDACT_IP_ADDRESSES=false ENV WEBPORT=8080 # https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop STOPSIGNAL SIGWINCH # Add labels for better metadata LABEL org.opencontainers.image.title="LibreSpeed" LABEL org.opencontainers.image.description="A Free and Open Source speed test that you can host on your server(s)" LABEL org.opencontainers.image.vendor="LibreSpeed" LABEL org.opencontainers.image.url="https://github.com/librespeed/speedtest" LABEL org.opencontainers.image.source="https://github.com/librespeed/speedtest" LABEL org.opencontainers.image.documentation="https://github.com/librespeed/speedtest/blob/master/doc_docker.md" LABEL org.opencontainers.image.licenses="LGPL-3.0-or-later" # Add health check HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:${WEBPORT}/ || exit 1 WORKDIR /var/www/html # Final touches EXPOSE ${WEBPORT} CMD ["bash", "/entrypoint.sh"]