Created
July 27, 2022 20:52
-
-
Save yaredc/8e88ac07ed44b1a2de4c362f073e07d1 to your computer and use it in GitHub Desktop.
PHP81 + SVM + TENSOR
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM library/php:8.1-fpm AS base | |
ENV TZ="Europe/Berlin" \ | |
USER="worker" \ | |
GROUP="worker" \ | |
WORKDIR="/var/www/html" \ | |
HOMEDIR="/var/www/.worker" \ | |
DEV_LIBS="pkg-config libssl-dev libxslt1-dev libpq-dev libmemcached-dev libedit-dev \ | |
libicu-dev libxml2-dev libldap2-dev libpng-dev libcurl4-openssl-dev \ | |
libldb-dev libbz2-dev libmagickwand-dev libzip-dev libopenblas-dev \ | |
liblapacke-dev libsvm-dev" | |
# https://docs.docker.com/engine/install/linux-postinstall/ | |
# sudo groupadd docker | |
# sudo usermod -aG docker $USER | |
RUN useradd -u 1000 -U -M $USER && \ | |
mkdir -p $WORKDIR &&\ | |
mkdir -p $HOMEDIR &&\ | |
chown -R $USER:$USER $WORKDIR &&\ | |
chown -R $USER:$USER $HOMEDIR &&\ | |
usermod -d $HOMEDIR $USER | |
RUN ln -snf "/usr/share/zoneinfo/$TZ" /etc/localtime &&\ | |
echo "$TZ" > /etc/timezone | |
RUN apt update -y &&\ | |
apt install -y --no-install-recommends ssh imagemagick \ | |
libxslt1.1 msmtp memcached libmemcached-tools libmemcached11 git zip \ | |
unzip libpng16-16 libzip4 default-mysql-client gfortran libopenblas-base \ | |
liblapack3 libsvm3 $DEV_LIBS | |
RUN pecl channel-update pecl.php.net &&\ | |
pecl install imagick memcached redis tensor svm-beta &&\ | |
docker-php-ext-enable imagick memcached redis tensor svm &&\ | |
ln -s /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3 /usr/lib/liblapacke.so.3 | |
RUN docker-php-ext-install xsl xml curl ctype intl iconv session simplexml pdo \ | |
pdo_mysql mysqli zip gd bz2 | |
RUN docker-php-ext-enable xsl xml curl ctype intl iconv session simplexml pdo \ | |
pdo_mysql mysqli zip gd bz2 | |
ENV COMPOSER_HOME="$WORKDIR/app/.composer" COMPOSER_MEMORY_LIMIT="-1" | |
RUN curl --output /usr/local/bin/composer https://getcomposer.org/composer.phar &&\ | |
chmod +x /usr/local/bin/composer | |
COPY .docker/php-fpm/etc/msmtprc /etc/msmtprc | |
COPY .docker/php-fpm/usr/local/etc/php/conf.d/zzz-common.ini /usr/local/etc/php/conf.d/zzz-common.ini | |
COPY .docker/php-fpm/usr/local/etc/php-fpm.d/zzz-common.conf /usr/local/etc/php-fpm.d/zzz-common.conf | |
WORKDIR $WORKDIR | |
################################################################ | |
FROM base AS dev | |
RUN pecl install xdebug &&\ | |
docker-php-ext-enable xdebug | |
RUN docker-php-source delete &&\ | |
apt remove -y $DEV_LIBS &&\ | |
apt autoclean -y &&\ | |
apt clean -y &&\ | |
apt autoremove -y &&\ | |
rm -rf /var/lib/apt/lists/* | |
COPY .docker/php-fpm/usr/local/etc/php/conf.d/zzz-xdebug.ini /usr/local/etc/php/conf.d/zzz-xdebug.ini | |
COPY .docker/php-fpm/usr/local/etc/php-fpm.d/zzz-dev.conf /usr/local/etc/php-fpm.d/zzz-dev.conf | |
USER $USER | |
################################################################ | |
FROM base AS prod | |
RUN docker-php-ext-install opcache &&\ | |
docker-php-ext-enable opcache | |
RUN docker-php-source delete &&\ | |
apt remove -y $DEV_LIBS &&\ | |
apt autoclean -y &&\ | |
apt clean -y &&\ | |
apt autoremove -y &&\ | |
rm -rf /var/lib/apt/lists/* | |
USER $USER |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment