Dockerfile.fpm 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. FROM php:7.4-fpm-buster
  2. ARG COMPOSER_VERSION="1.9.1"
  3. ARG COMPOSER_CHECKSUM="1f210b9037fcf82670d75892dfc44400f13fe9ada7af9e787f93e50e3b764111"
  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 ffmpeg \
  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 mariadb-client\
  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. --with-freetype \
  15. --with-jpeg \
  16. --with-webp \
  17. --with-xpm \
  18. && docker-php-ext-install pdo_mysql pdo_pgsql pdo_sqlite pcntl gd exif bcmath intl zip curl \
  19. && docker-php-ext-enable pcntl gd exif zip curl \
  20. && curl -LsS https://getcomposer.org/download/${COMPOSER_VERSION}/composer.phar -o /usr/bin/composer \
  21. && echo "${COMPOSER_CHECKSUM} /usr/bin/composer" | sha256sum -c - \
  22. && chmod 755 /usr/bin/composer \
  23. && apt-get autoremove --purge -y \
  24. libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev libvpx-dev libmagickwand-dev \
  25. && rm -rf /var/cache/apt \
  26. && docker-php-source delete
  27. ENV PATH="~/.composer/vendor/bin:./vendor/bin:${PATH}"
  28. COPY . /var/www/
  29. WORKDIR /var/www/
  30. RUN cp -r storage storage.skel \
  31. && cp contrib/docker/php.ini /usr/local/etc/php/conf.d/pixelfed.ini \
  32. && composer global require hirak/prestissimo --no-interaction --no-suggest --prefer-dist \
  33. && composer install --prefer-dist --no-interaction \
  34. && composer global remove hirak/prestissimo \
  35. && rm -rf html && ln -s public html
  36. VOLUME /var/www/storage /var/www/bootstrap
  37. ENV APP_ENV=production \
  38. APP_DEBUG=false \
  39. LOG_CHANNEL=stderr \
  40. DB_CONNECTION=mysql \
  41. DB_PORT=3306 \
  42. DB_HOST=db \
  43. BROADCAST_DRIVER=log \
  44. QUEUE_DRIVER=redis \
  45. HORIZON_PREFIX=horizon-pixelfed \
  46. REDIS_HOST=redis \
  47. SESSION_SECURE_COOKIE=true \
  48. API_BASE="/api/1/" \
  49. API_SEARCH="/api/search" \
  50. OPEN_REGISTRATION=true \
  51. ENFORCE_EMAIL_VERIFICATION=true \
  52. REMOTE_FOLLOW=false \
  53. ACTIVITY_PUB=false
  54. CMD cp -r storage.skel/* storage/ \
  55. && chown -R www-data:www-data storage/ \
  56. && php artisan storage:link \
  57. && php artisan migrate --force \
  58. && php artisan update \
  59. && exec php-fpm