Dockerfile 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. FROM php:7.4.11-apache
  2. ARG COMPOSER_HASH
  3. # Configure php
  4. COPY /docker/typo3/conf/memory.ini /usr/local/etc/php/conf.d/
  5. COPY /docker/typo3/conf/apc.ini /usr/local/etc/php/conf.d/
  6. COPY /docker/typo3/conf/xdebug.ini /usr/local/etc/php/conf.d/
  7. # Configure apache
  8. COPY /docker/typo3/conf/typo3.conf /etc/apache2/sites-available/
  9. # Prepare typo3 install
  10. COPY /apps/ot_typo3/docker/mount/composer.json /var/www/typo3/
  11. COPY /apps/ot_typo3/docker/mount/LocalConfiguration.php /var/www/typo3/public/typo3conf/
  12. COPY /apps/ot_typo3/docker/conf/sites.tar.gz /var/www/typo3/config/
  13. # Set workdir
  14. WORKDIR /var/www/typo3
  15. RUN \
  16. # Install utilities and php extensions
  17. apt-get clean && apt-get update && apt-get install -y locales; \
  18. pecl install apcu-5.1.17 && pecl install apcu_bc && pecl install imagick-3.4.3RC2; \
  19. apt-get install -y --no-install-recommends libzip-dev zip unzip git nano libonig-dev zlib1g-dev libpng-dev libjpeg-dev; \
  20. docker-php-ext-configure zip --with-libzip; \
  21. docker-php-ext-install opcache pdo_mysql exif mbstring mysqli gd; \
  22. docker-php-ext-enable opcache pdo_mysql exif mbstring mysqli gd; \
  23. # Install and enable xdebug
  24. pecl install xdebug-2.9.8; \
  25. docker-php-ext-enable xdebug; \
  26. # Install composer.phar in the typo3 directory
  27. php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"; \
  28. php -r "if (hash_file('sha384', 'composer-setup.php') === '$COMPOSER_HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"; \
  29. php composer-setup.php; \
  30. php -r "unlink('composer-setup.php');"; \
  31. # Install Typo3
  32. php composer.phar install; \
  33. # Install the ot_typo3 extensions:
  34. mkdir -p /var/www/typo3/public/typo3conf/ext; \
  35. ln -s /var/opentalent/git/ot_typo3/ot_templating /var/www/typo3/public/typo3conf/ext/ot_templating \
  36. && ln -s /var/opentalent/git/ot_typo3/ot_connect /var/www/typo3/public/typo3conf/ext/ot_connect \
  37. && ln -s /var/opentalent/git/ot_typo3/ot_optimizer /var/www/typo3/public/typo3conf/ext/ot_optimizer \
  38. && ln -s /var/opentalent/git/ot_typo3/ot_admin /var/www/typo3/public/typo3conf/ext/ot_admin; \
  39. chown -R www-data:www-data /var/www/typo3; \
  40. # Untar the sites.yaml
  41. mkdir -p /var/www/typo3/config; \
  42. tar -xzf /var/www/typo3/config/sites.tar.gz -C /var/www/typo3/config/; \
  43. # Finalize installation
  44. mkdir -p /var/www/typo3/var; \
  45. php composer.phar dumpautoload; \
  46. chown -R www-data:www-data /var/www/typo3/; \
  47. # Configure apache
  48. rm /etc/apache2/sites-available/000-default.conf && rm /etc/apache2/sites-available/default-ssl.conf; \
  49. a2ensite typo3; \
  50. service apache2 restart; \
  51. # enable the install tool
  52. touch /var/www/typo3/public/typo3conf/ENABLE_INSTALL_TOOL
  53. # Copy the cli shortcut
  54. COPY /docker/typo3/conf/cli /var/www/typo3/