You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
3.9 KiB

  1. FROM dimti/workspace:8.1
  2. ARG PHP_VERSION=8.1
  3. ###########################################################################
  4. # Laradock non-root user:
  5. ###########################################################################
  6. ARG CUSTOM_PUID=1000
  7. ENV PUID ${CUSTOM_PUID}
  8. ARG CUSTOM_PGID=1000
  9. ENV PGID ${CUSTOM_PGID}
  10. RUN usermod -u ${CUSTOM_PUID} laradock && groupmod -g ${CUSTOM_PGID} laradock
  11. RUN chown -R ${CUSTOM_PUID}:${CUSTOM_PGID} /home/laradock
  12. ###########################################################################
  13. # Set Timezone
  14. ###########################################################################
  15. ARG CUSTOM_TZ=Europe/Moscow
  16. ENV TZ ${CUSTOM_TZ}
  17. RUN ln -snf /usr/share/zoneinfo/$CUSTOM_TZ /etc/localtime && echo $CUSTOM_TZ > /etc/timezone
  18. ###########################################################################
  19. # Additional PHP-extensions:
  20. ###########################################################################
  21. ARG INSTALL_REDIS=false
  22. #RUN pecl install igbinary
  23. RUN if [ ${INSTALL_REDIS} = true ]; then \
  24. pecl install -a redis \
  25. echo "extension=redis.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-redis.ini \
  26. ;fi
  27. ###########################################################################
  28. # Libreoffice
  29. ###########################################################################
  30. ARG INSTALL_LIBREOFFICE=false
  31. ARG DEBIAN_FRONTEND=noninteractive
  32. RUN if [ ${INSTALL_LIBREOFFICE} = true ]; then \
  33. add-apt-repository ppa:libreoffice/ppa \
  34. && apt update \
  35. && apt install libreoffice-nogui -y --no-install-recommends \
  36. && apt clean \
  37. ;fi
  38. ###########################################################################
  39. # S3 config
  40. ###########################################################################
  41. USER laradock
  42. COPY ./minio/auth.json /home/laradock/.mc/config.json
  43. ###########################################################################
  44. # Install custom node version
  45. ###########################################################################
  46. USER root
  47. ARG NODE_VERSION
  48. ENV NODE_VERSION ${NODE_VERSION}
  49. RUN if [ ! -z "${NODE_VERSION}" ]; then \
  50. . ~/.bashrc && nvm install ${NODE_VERSION} \
  51. && . ~/.bashrc && nvm alias default ${NODE_VERSION} \
  52. && npm i -g yarn \
  53. && cp -R ~/.nvm/alias /home/laradock/.nvm \
  54. && cp -R ~/.nvm/versions /home/laradock/.nvm \
  55. && chown -R ${CUSTOM_PUID}:${CUSTOM_PGID} /home/laradock/.nvm \
  56. ;fi
  57. ###########################################################################
  58. # Update composer version
  59. ###########################################################################
  60. USER root
  61. ARG COMPOSER_VERSION=2
  62. ENV COMPOSER_VERSION ${COMPOSER_VERSION}
  63. RUN composer self-update --${COMPOSER_VERSION}
  64. ###########################################################################
  65. # Laradock Aliases
  66. ###########################################################################
  67. USER laradock
  68. COPY ./aliases.sh /home/laradock/aliases.sh
  69. RUN echo "" >> ~/.bashrc && \
  70. echo "# Load Custom Aliases" >> ~/.bashrc && \
  71. echo "source ~/aliases.sh" >> ~/.bashrc && \
  72. echo "" >> ~/.bashrc
  73. ###########################################################################
  74. # Tune opts:
  75. ###########################################################################
  76. USER root
  77. ARG PHP_OPT_SHORT_OPEN_TAG=Off
  78. RUN sed -i "s/^short_open_tag = .*/short_open_tag = $PHP_OPT_SHORT_OPEN_TAG/g" /etc/php/${PHP_VERSION}/cli/php.ini
  79. ARG PHP_OPT_MAX_EXECUTION_TIME=600
  80. RUN sed -i "s/^max_execution_time = .*/max_execution_time = $PHP_OPT_MAX_EXECUTION_TIME/g" /etc/php/${PHP_VERSION}/cli/php.ini
  81. ARG PHP_OPT_MEMORY_LIMIT=256M
  82. RUN sed -i "s/^memory_limit = .*/memory_limit = $PHP_OPT_MEMORY_LIMIT/g" /etc/php/${PHP_VERSION}/cli/php.ini
  83. ###########################################################################
  84. # Crontab
  85. ###########################################################################
  86. USER root
  87. COPY ./crontab /etc/cron.d
  88. RUN chmod -R 644 /etc/cron.d