Dockerfile.fpm 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. FROM php:7.2-fpm
  2. ARG COMPOSER_VERSION="1.6.5"
  3. ARG COMPOSER_CHECKSUM="67bebe9df9866a795078bb2cf21798d8b0214f2e0b2fd81f2e907a8ef0be3434"
  4. RUN apt-get update \
  5. && apt-get install -y --no-install-recommends git \
  6. optipng pngquant jpegoptim gifsicle \
  7. libfreetype6 libjpeg62-turbo libpng16-16 libxpm4 libvpx4 libmagickwand-6.q16-3 \
  8. libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev libvpx-dev libmagickwand-dev \
  9. && docker-php-source extract \
  10. && docker-php-ext-configure gd \
  11. --with-freetype-dir=/usr/lib/x86_64-linux-gnu/ \
  12. --with-jpeg-dir=/usr/lib/x86_64-linux-gnu/ \
  13. --with-xpm-dir=/usr/lib/x86_64-linux-gnu/ \
  14. --with-vpx-dir=/usr/lib/x86_64-linux-gnu/ \
  15. && docker-php-ext-install pdo_mysql pcntl gd exif bcmath \
  16. && pecl install imagick \
  17. && docker-php-ext-enable imagick pcntl imagick gd exif \
  18. && curl -LsS https://getcomposer.org/download/${COMPOSER_VERSION}/composer.phar -o /usr/bin/composer \
  19. && echo "${COMPOSER_CHECKSUM} /usr/bin/composer" | sha256sum -c - \
  20. && chmod 755 /usr/bin/composer \
  21. && apt-get autoremove --purge -y \
  22. libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev libvpx-dev libmagickwand-dev \
  23. && rm -rf /var/cache/apt \
  24. && docker-php-source delete
  25. ENV PATH="~/.composer/vendor/bin:./vendor/bin:${PATH}"
  26. COPY . /var/www/
  27. WORKDIR /var/www/
  28. RUN cp -r storage storage.skel \
  29. && cp contrib/docker/php.ini /usr/local/etc/php/conf.d/pixelfed.ini \
  30. && composer install --prefer-dist --no-interaction \
  31. && rm -rf html && ln -s public html
  32. VOLUME ["/var/www/storage", "/var/www/public.ext"]
  33. ENV APP_ENV=production \
  34. APP_DEBUG=false \
  35. LOG_CHANNEL=stderr \
  36. DB_CONNECTION=mysql \
  37. DB_PORT=3306 \
  38. DB_HOST=db \
  39. BROADCAST_DRIVER=log \
  40. QUEUE_DRIVER=redis \
  41. HORIZON_PREFIX=horizon-pixelfed \
  42. REDIS_HOST=redis \
  43. SESSION_SECURE_COOKIE=true \
  44. API_BASE="/api/1/" \
  45. API_SEARCH="/api/search" \
  46. OPEN_REGISTRATION=true \
  47. ENFORCE_EMAIL_VERIFICATION=true \
  48. REMOTE_FOLLOW=false \
  49. ACTIVITY_PUB=false
  50. CMD cp -r storage.skel/* storage/ \
  51. && cp -r public/* public.ext/ \
  52. && chown -R www-data:www-data storage/ \
  53. && php artisan storage:link \
  54. && php artisan migrate --force \
  55. && php artisan update \
  56. && exec php-fpm