| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- FROM php:8-apache
- # 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 and cleanup in a single layer to reduce image size
- RUN install-php-extensions iconv gd pdo pdo_mysql pdo_pgsql pgsql \
- && rm -f /usr/src/php.tar.xz /usr/src/php.tar.xz.asc \
- && apt-get autoremove -y \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
- # 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 curl -f http://localhost:${WEBPORT}/ || exit 1
- # Final touches
- EXPOSE ${WEBPORT}
- CMD ["bash", "/entrypoint.sh"]
|