Sign inSign up

fredy314/php

By fredy314

•Updated 7 months ago

php:8.4-fpm + max modules, uid/gid www-data=1000

Image
0

1.9K

fredy314/php repository overview

FROM alpine:3.5

RUN apk --update add
nano mc bash git curl

⁠freetype-dev \

⁠libjpeg-turbo-dev \

⁠libmcrypt-dev \

⁠libpng-dev \

⁠postgresql-dev \

⁠icu-dev

⁠install php

RUN apk --update add
php5
php5-curl
php5-fpm
php5-ftp
php5-gd
php5-iconv
php5-imagick
php5-intl
php5-json
php5-mcrypt
php5-memcache
php5-mysql
php5-openssl
php5-pdo
php5-pdo_mysql
php5-pdo_pgsql
php5-pdo_sqlite
php5-pear
php5-phar
php5-pgsql
php5-sqlite3
php5-xml
php5-zip

⁠setup timezone

RUN apk add tzdata
&& cp /usr/share/zoneinfo/Europe/Kiev /etc/localtime
&& echo "Europe/Kiev" > /etc/timezone

⁠setup iconv

RUN apk add build-base autoconf
&& mkdir -p /opt
&& cd /opt
&& wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz⁠
&& tar xzf libiconv-1.14.tar.gz
&& cd libiconv-1.14
&& sed -i 's/_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");/#if HAVE_RAW_DECL_GETS\n_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");\n#endif/g' srclib/stdio.in.h
&& ./configure --prefix=/usr
&& make
&& make install

ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so

⁠setup locale

RUN apk update && apk add ca-certificates && update-ca-certificates && apk add openssl
&& cd /opt
&& wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/sgerrand.rsa.pub⁠
&& wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/glibc-2.23-r3.apk⁠
&& wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/glibc-bin-2.23-r3.apk⁠
&& wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/glibc-i18n-2.23-r3.apk⁠
&& apk add glibc-2.23-r3.apk glibc-bin-2.23-r3.apk glibc-i18n-2.23-r3.apk

⁠delete temp files

RUN rm -rf /opt/*

ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/glibc-compat/bin

RUN export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/glibc-compat/bin
&& /usr/glibc-compat/bin/localedef -i ru_UA -f UTF-8 ru_UA.UTF-8
&& export LC_ALL=ru_UA.UTF-8

ENV LC_ALL ru_UA.UTF-8

⁠install composer

RUN curl -sS https://getcomposer.org/installer⁠ | php
&& mv composer.phar /usr/bin/composer
&& composer global require "fxp/composer-asset-plugin:^1.2.0"

⁠install phpmyadmin

RUN apk --update add phpmyadmin
&& chmod 0644 /etc/phpmyadmin/config.inc.php
&& sed -i 's/cookie/config/g' /etc/phpmyadmin/config.inc.php
&& sed -i 's/localhost/mysql/g' /etc/phpmyadmin/config.inc.php
&& sed -i "s/'mysql';/'mysql';\n$cfg['Servers'][$i]['password'] = 'test';/g" /etc/phpmyadmin/config.inc.php
&& sed -i "s/'mysql';/'mysql';\n$cfg['Servers'][$i]['user'] = 'test';/g" /etc/phpmyadmin/config.inc.php

⁠setup php

RUN sed -i 's/memory_limit = 128M/memory_limit = 1024M/g' /etc/php5/php.ini
&& sed -i 's/post_max_size = 8M/post_max_size = 1024M/g' /etc/php5/php.ini
&& sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 1024M/g' /etc/php5/php.ini
&& sed -i 's/date.timezone = UTC/date.timezone = Europe/Kiev/g' /etc/php5/php.ini
&& sed -i 's/short_open_tag = Off/short_open_tag = On/g' /etc/php5/php.ini
&& sed -i 's/display_errors = Off/display_errors = On/g' /etc/php5/php.ini
&& sed -i 's/display_startup_errors = Off/display_startup_errors = On/g' /etc/php5/php.ini && sed -i 's/;error_log = php_errors.log/error_log = /var/log/php-errors.log/g' /etc/php5/php.ini

⁠setup php-fpm

RUN addgroup -g 82 -S user
&& adduser -u 82 -D -S -G user user
&& sed -i 's/listen = 127.0.0.1:9000/listen = [::]:9000/g' /etc/php5/php-fpm.conf
&& sed -i 's/;daemonize = yes/daemonize = no/g' /etc/php5/php-fpm.conf
&& sed -i 's/user = nobody/user = user/g' /etc/php5/php-fpm.conf
&& sed -i 's/group = nobody/group = user/g' /etc/php5/php-fpm.conf
&& sed -i 's/;clear_env = no/clear_env = no/g' /etc/php5/php-fpm.conf
&& sed -i 's/;catch_workers_output = yes/catch_workers_output = yes/g' /etc/php5/php-fpm.conf

⁠настройка mc

RUN mkdir -p ~/.config/mc
&& echo '[Midnight-Commander]' > ~/.config/mc/ini
&& echo 'use_internal_edit=0' >> ~/.config/mc/ini

⁠настроить bash

ADD .bashrc /root/.bashrc ADD .inputrc /root/.inputrc

ADD run /usr/bin/run

RUN chmod +x /usr/bin/run

EXPOSE 9000

WORKDIR /var/www/html

CMD "/usr/bin/run"

ENV ENTRY_POINT php-fpm

VOLUME ["/var/www/html", "/usr/share/webapps/phpmyadmin"]

⁠docker build -t docker.io/fredy314/php:latest .

⁠docker push docker.io/fredy314/php:latest

Tag summary

Content type

Image

Digest

sha256:1ec2bb742…

Size

466.8 MB

Last updated

7 months ago

docker pull fredy314/php