|
| 1 | +FROM php:8.2-fpm-alpine |
| 2 | + |
| 3 | +ENV ASUSER= \ |
| 4 | + UID= \ |
| 5 | + COMPOSER_ALLOW_SUPERUSER=1 \ |
| 6 | + COMPOSER_MEMORY_LIMIT=-1 \ |
| 7 | + PHP_DATE_TIMEZONE=UTC \ |
| 8 | + PHP_MEMORY_LIMIT=256M \ |
| 9 | + PHP_MAX_INPUT_VARS=1000 \ |
| 10 | + PHP_UPLOAD_MAX_FILESIZE=25M \ |
| 11 | + PHP_POST_MAX_SIZE=25M \ |
| 12 | + PHP_MAX_EXECUTION_TIME=30 \ |
| 13 | + PHP_FPM_LISTEN=9000 \ |
| 14 | + PHP_FPM_MAX_CHILDREN=10 \ |
| 15 | + PHP_FPM_REQUEST_TERMINATE_TIMEOUT=60 \ |
| 16 | + ENTRYPOINT=entrypoint.php.sh |
| 17 | + |
| 18 | +WORKDIR /app |
| 19 | + |
| 20 | +RUN adduser -D -u 1337 kool \ |
| 21 | + && addgroup kool www-data \ |
| 22 | + # dockerize |
| 23 | + && curl -L https://github.com/jwilder/dockerize/releases/download/v0.6.1/dockerize-alpine-linux-amd64-v0.6.1.tar.gz | tar xz \ |
| 24 | + && mv dockerize /usr/local/bin/dockerize \ |
| 25 | + # deps |
| 26 | + && apk --no-cache add su-exec bash sed git openssh-client icu shadow procps \ |
| 27 | + freetype libpng libjpeg-turbo libzip-dev ghostscript imagemagick \ |
| 28 | + jpegoptim optipng pngquant gifsicle libldap \ |
| 29 | + libpq less \ |
| 30 | + # build-deps |
| 31 | + && apk add --no-cache --virtual .build-deps $PHPIZE_DEPS \ |
| 32 | + freetype-dev libpng-dev libjpeg-turbo-dev \ |
| 33 | + icu-dev libedit-dev libxml2-dev \ |
| 34 | + imagemagick-dev openldap-dev oniguruma-dev \ |
| 35 | + postgresql-dev \ |
| 36 | + # php-ext |
| 37 | + && docker-php-ext-configure gd --with-freetype --with-jpeg \ |
| 38 | + && export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" \ |
| 39 | + && docker-php-ext-install -j$(nproc) \ |
| 40 | + bcmath \ |
| 41 | + calendar \ |
| 42 | + exif \ |
| 43 | + gd \ |
| 44 | + intl \ |
| 45 | + ldap \ |
| 46 | + mbstring \ |
| 47 | + opcache \ |
| 48 | + pcntl \ |
| 49 | + pdo \ |
| 50 | + pdo_mysql \ |
| 51 | + pdo_pgsql \ |
| 52 | + soap \ |
| 53 | + xml \ |
| 54 | + zip \ |
| 55 | + sockets \ |
| 56 | + mysqli \ |
| 57 | + && pecl install imagick redis \ |
| 58 | + && docker-php-ext-enable imagick \ |
| 59 | + && docker-php-ext-enable redis \ |
| 60 | + && cp "/usr/local/etc/php/php.ini-production" "/usr/local/etc/php/php.ini" \ |
| 61 | + # composer |
| 62 | + && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ |
| 63 | + && curl -sS https://getcomposer.org/installer | php -- --1 --install-dir=/usr/local/bin --filename=composer1 \ |
| 64 | + # symlink composer2 for BC |
| 65 | + && ln -s /usr/local/bin/composer /usr/local/bin/composer2 \ |
| 66 | + # cleanup |
| 67 | + && apk del .build-deps \ |
| 68 | + && rm -rf /var/cache/apk/* /tmp/* |
| 69 | + |
| 70 | +COPY kool.ini /kool/kool.tmpl |
| 71 | +COPY zz-docker.conf /kool/zz-docker.tmpl |
| 72 | +COPY entrypoint /kool/entrypoint |
| 73 | +RUN chmod +x /kool/entrypoint |
| 74 | + |
| 75 | +EXPOSE 9000 |
| 76 | + |
| 77 | +ENTRYPOINT [ "/kool/entrypoint" ] |
| 78 | +CMD [ "php-fpm" ] |
0 commit comments