Dockerfile.apache 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. FROM php:7.3-apache-buster
  2. ARG COMPOSER_VERSION="1.8.5"
  3. ARG COMPOSER_CHECKSUM="4e4c1cd74b54a26618699f3190e6f5fc63bb308b13fa660f71f2a2df047c0e17"
  4. RUN apt-get update \
  5. && apt-get install -y --no-install-recommends apt-utils \
  6. && apt-get install -y --no-install-recommends git gosu \
  7. optipng pngquant jpegoptim gifsicle libpq-dev libsqlite3-dev locales zip unzip libzip-dev libcurl4-openssl-dev \
  8. libfreetype6 libicu-dev libjpeg62-turbo libpng16-16 libxpm4 libwebp6 libmagickwand-6.q16-6 \
  9. libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev libwebp-dev libmagickwand-dev \
  10. && sed -i '/en_US/s/^#//g' /etc/locale.gen \
  11. && locale-gen && update-locale \
  12. && docker-php-source extract \
  13. && docker-php-ext-configure gd \
  14. --enable-freetype \
  15. --with-jpeg-dir=/usr/lib/x86_64-linux-gnu/ \
  16. --with-xpm-dir=/usr/lib/x86_64-linux-gnu/ \
  17. --with-webp-dir=/usr/lib/x86_64-linux-gnu/ \
  18. && docker-php-ext-install pdo_mysql pdo_pgsql pdo_sqlite pcntl gd exif bcmath intl zip curl \
  19. && pecl install imagick \
  20. && docker-php-ext-enable imagick pcntl imagick gd exif zip curl \
  21. && a2enmod rewrite remoteip \
  22. && {\
  23. echo RemoteIPHeader X-Real-IP ;\
  24. echo RemoteIPTrustedProxy 10.0.0.0/8 ;\
  25. echo RemoteIPTrustedProxy 172.16.0.0/12 ;\
  26. echo RemoteIPTrustedProxy 192.168.0.0/16 ;\
  27. echo SetEnvIf X-Forwarded-Proto "https" HTTPS=on ;\
  28. } > /etc/apache2/conf-available/remoteip.conf \
  29. && a2enconf remoteip \
  30. && curl -LsS https://getcomposer.org/download/${COMPOSER_VERSION}/composer.phar -o /usr/bin/composer \
  31. && echo "${COMPOSER_CHECKSUM} /usr/bin/composer" | sha256sum -c - \
  32. && chmod 755 /usr/bin/composer \
  33. && apt-get autoremove --purge -y \
  34. libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev libvpx-dev libmagickwand-dev \
  35. && rm -rf /var/cache/apt \
  36. && docker-php-source delete
  37. ENV PATH="~/.composer/vendor/bin:./vendor/bin:${PATH}"
  38. COPY . /var/www/
  39. WORKDIR /var/www/
  40. RUN cp -r storage storage.skel \
  41. && cp contrib/docker/php.ini /usr/local/etc/php/conf.d/pixelfed.ini \
  42. && composer install --prefer-source --no-interaction \
  43. && rm -rf html && ln -s public html
  44. VOLUME /var/www/storage /var/www/bootstrap
  45. ENV APP_ENV=production \
  46. APP_DEBUG=false \
  47. LOG_CHANNEL=stderr \
  48. DB_CONNECTION=mysql \
  49. DB_PORT=3306 \
  50. DB_HOST=db \
  51. BROADCAST_DRIVER=log \
  52. QUEUE_DRIVER=redis \
  53. HORIZON_PREFIX=horizon-pixelfed \
  54. REDIS_HOST=redis \
  55. SESSION_SECURE_COOKIE=true \
  56. API_BASE="/api/1/" \
  57. API_SEARCH="/api/search" \
  58. OPEN_REGISTRATION=true \
  59. ENFORCE_EMAIL_VERIFICATION=true \
  60. REMOTE_FOLLOW=false \
  61. ACTIVITY_PUB=false
  62. CMD /var/www/contrib/docker/start.sh