Advertisement
nugrohoe_ku

Dockerfile-php74

Mar 29th, 2022 (edited)
455
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. #FROM php:7.4-apache
  2. #RUN docker-php-ext-install mysqli
  3. #RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
  4.  
  5. FROM php:7.4.2-apache-buster
  6.  
  7. # Surpresses debconf complaints of trying to install apt packages interactively
  8. # https://github.com/moby/moby/issues/4032#issuecomment-192327844
  9.  
  10. ARG DEBIAN_FRONTEND=noninteractive
  11. ARG UNAME=bastomi
  12. ARG UID=1000
  13. ARG GID=1000
  14.  
  15. # Update
  16. RUN apt-get -y update --fix-missing && \
  17. apt-get upgrade -y && \
  18. apt-get --no-install-recommends install -y apt-utils && \
  19. rm -rf /var/lib/apt/lists/*
  20.  
  21. # Install useful tools and install important libaries
  22. RUN apt-get -y update && \
  23. apt-get -y --no-install-recommends install nano wget \
  24. dialog \
  25. sudo \
  26. libsqlite3-dev \
  27. libsqlite3-0 && \
  28. apt-get -y --no-install-recommends install default-mysql-client \
  29. zlib1g-dev \
  30. libzip-dev \
  31. libicu-dev && \
  32. apt-get -y --no-install-recommends install --fix-missing apt-utils \
  33. build-essential \
  34. git \
  35. curl \
  36. libonig-dev && \
  37. apt-get -y --no-install-recommends install --fix-missing libcurl4 \
  38. libcurl4-openssl-dev \
  39. zip \
  40. unzip \
  41. gzip \
  42. openssl && \
  43. rm -rf /var/lib/apt/lists/* && \
  44. curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
  45.  
  46. # Install xdebug
  47. RUN pecl install xdebug-2.8.0 && \
  48. docker-php-ext-enable xdebug
  49.  
  50. # Install redis
  51. RUN pecl install redis-5.1.1 && \
  52. docker-php-ext-enable redis
  53.  
  54. # Install imagick
  55. RUN apt-get update && \
  56. apt-get -y --no-install-recommends install --fix-missing libmagickwand-dev && \
  57. rm -rf /var/lib/apt/lists/* && \
  58. pecl install imagick && \
  59. docker-php-ext-enable imagick
  60.  
  61. # Other PHP7 Extensions
  62.  
  63. RUN docker-php-ext-install bcmath && \
  64. docker-php-ext-install intl && \
  65. docker-php-ext-install pdo_mysql && \
  66. docker-php-ext-install pdo_sqlite && \
  67. docker-php-ext-install mysqli && \
  68. docker-php-ext-install curl && \
  69. docker-php-ext-install tokenizer && \
  70. docker-php-ext-install json && \
  71. docker-php-ext-install zip && \
  72. docker-php-ext-install -j$(nproc) intl && \
  73. docker-php-ext-install mbstring && \
  74. docker-php-ext-install gettext && \
  75. docker-php-ext-install calendar && \
  76. docker-php-ext-install exif
  77.  
  78. # Install Freetype
  79. RUN apt-get -y update && \
  80. apt-get --no-install-recommends install -y libfreetype6-dev \
  81. libjpeg62-turbo-dev \
  82. libpng-dev && \
  83. rm -rf /var/lib/apt/lists/* && \
  84. docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg && \
  85. docker-php-ext-install gd
  86.  
  87. # add user & permission
  88. RUN groupadd -g $GID -o $UNAME && \
  89. useradd -m -u $UID -g $GID -o -s /bin/bash $UNAME && \
  90. echo "${UNAME}:bastomi" | chpasswd && \
  91. addgroup wheel && \
  92. echo '%wheel ALL=(ALL) ALL' >> /etc/sudoers && \
  93. echo '${UNAME} ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
  94. usermod -aG wheel $UNAME && \
  95. chown -R $UNAME:$UNAME /var/www
  96.  
  97. # add aliases
  98. RUN echo "alias yii-advanced='composer create-project --prefer-dist yiisoft/yii2-app-advanced'" >> /home/${UNAME}/.bash_aliases && \
  99. echo "alias yii-basic='composer create-project --prefer-dist yiisoft/yii2-app-basic'" >> /home/${UNAME}/.bash_aliases && \
  100. echo "alias laravel='composer create-project laravel/laravel'" >> /home/${UNAME}/.bash_aliases && \
  101. echo "alias ci4='composer create-project codeigniter4/appstarter'" >> /home/${UNAME}/.bash_aliases
  102. #source /home/${UNAME}/.bash_aliases && \
  103. #source /home/${UNAME}/.bashrc
  104.  
  105. # Enable apache modules
  106. RUN a2enmod rewrite headers
  107.  
  108. # Cleanup
  109. RUN rm -rf /usr/src/*
  110.  
  111. USER $UNAME
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement