Dockerfile 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. FROM php:8-apache
  2. # Install extensions
  3. RUN apt-get update && apt-get install -y --no-install-recommends \
  4. libfreetype6-dev \
  5. libjpeg62-turbo-dev \
  6. libpng-dev \
  7. libpq-dev \
  8. && docker-php-ext-install -j$(nproc) iconv \
  9. && docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ \
  10. && docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \
  11. && docker-php-ext-install -j$(nproc) gd pdo pdo_mysql pdo_pgsql pgsql \
  12. && rm -f /usr/src/php.tar.xz /usr/src/php.tar.xz.asc \
  13. && apt-get remove -y libfreetype6-dev \
  14. libjpeg62-turbo-dev \
  15. libpng-dev \
  16. libpq-dev \
  17. && apt autoremove -y \
  18. && rm -rf /var/lib/apt/lists/*
  19. # Prepare files and folders
  20. RUN mkdir -p /speedtest/
  21. # Copy sources
  22. COPY backend/ /speedtest/backend
  23. COPY frontend/ /speedtest/frontend
  24. COPY results/*.php /speedtest/results/
  25. COPY results/*.ttf /speedtest/results/
  26. COPY *.js /speedtest/
  27. COPY favicon.ico /speedtest/
  28. COPY docker/servers.json /servers.json
  29. COPY docker/*.php /speedtest/
  30. COPY docker/entrypoint.sh /
  31. # Prepare default environment variables
  32. ENV TITLE=LibreSpeed
  33. ENV MODE=standalone
  34. ENV PASSWORD=password
  35. ENV TELEMETRY=false
  36. ENV ENABLE_ID_OBFUSCATION=false
  37. ENV REDACT_IP_ADDRESSES=false
  38. ENV WEBPORT=80
  39. # https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop
  40. STOPSIGNAL SIGWINCH
  41. # Final touches
  42. EXPOSE 80
  43. CMD ["bash", "/entrypoint.sh"]