From 240a2af2d5f54bf0d4906392202161cd22419119 Mon Sep 17 00:00:00 2001 From: richard Date: Sat, 2 Jan 2021 20:36:35 -0500 Subject: [PATCH] update php and composer builds --- dockerfiles/tasks/composer/Dockerfile-73 | 21 +++++++------- dockerfiles/tasks/composer/build.sh | 37 ++++++++++++------------ dockerfiles/tasks/php/Dockerfile-7.3 | 34 ++++++++++++---------- dockerfiles/tasks/php/Dockerfile-7.3-dev | 23 ++++++++++----- dockerfiles/tasks/php/build.sh | 31 +++++++++++++++----- 5 files changed, 86 insertions(+), 60 deletions(-) diff --git a/dockerfiles/tasks/composer/Dockerfile-73 b/dockerfiles/tasks/composer/Dockerfile-73 index 021ac04..1d288d5 100644 --- a/dockerfiles/tasks/composer/Dockerfile-73 +++ b/dockerfiles/tasks/composer/Dockerfile-73 @@ -9,16 +9,6 @@ WORKDIR /opt/project # this is not needed in prod containers, but is useful for devs ENV TERM=xterm -#RUN apt-get update && apt-get install -y software-properties-common python-software-properties \ -# && LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php \ -# && apt-get update && apt-get install -y \ -# curl nano sed libwww-perl htop ca-certificates \ -# php7.2 php-cli php-fpm php-curl php-pear php-mcrypt php-zip php-mbstring php-xml \ -# php-pgsql php-redis php-soap\ -# git \ -# \ -# && apt-cache pkgnames | grep php7.3 \ -# && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ && php composer-setup.php --install-dir=/usr/local/bin --filename=composer \ && composer global require franzl/studio\ @@ -26,3 +16,14 @@ RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ && mkdir -p /home/user/.composer && chmod -R 777 /home/user/.composer ENTRYPOINT ["/usr/local/bin/composer"] + +RUN apt-get update && apt-get install -y \ +# && LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php \ +# && apt-get update && apt-get install -y \ +# curl nano sed libwww-perl htop ca-certificates \ +# php7.2 php-cli php-fpm php-curl php-pear php-mcrypt php-zip php-mbstring php-xml \ +# php-pgsql php-redis php-soap\ + unzip \ +# \ +# && apt-cache pkgnames | grep php7.3 \ + && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ diff --git a/dockerfiles/tasks/composer/build.sh b/dockerfiles/tasks/composer/build.sh index 8f21c90..817c559 100755 --- a/dockerfiles/tasks/composer/build.sh +++ b/dockerfiles/tasks/composer/build.sh @@ -1,29 +1,30 @@ #!/usr/bin/env bash +set -ex -docker build --rm -t xaicorp/composer:7.0 . -docker run --rm --entrypoint php xaicorp/composer:7.0 --version | grep 'PHP 7.0.' -docker run --rm xaicorp/composer:7.0 --version | grep 'Composer' -docker tag xaicorp/composer:7.0 dkregistry.xai-corp.net:5000/xaicorp/composer:7.0 -docker push dkregistry.xai-corp.net:5000/xaicorp/composer:7.0 +#docker build --rm -t xaicorp/composer:7.0 . +#docker run --rm --entrypoint php xaicorp/composer:7.0 --version | grep 'PHP 7.0.' +#docker run --rm xaicorp/composer:7.0 --version | grep 'Composer' +#docker tag xaicorp/composer:7.0 dkregistry.xai-corp.net:5000/xaicorp/composer:7.0 +#docker push dkregistry.xai-corp.net:5000/xaicorp/composer:7.0 +# +#docker build --rm -f Dockerfile-71 -t xaicorp/composer:7.1 . +#docker run --rm --entrypoint php xaicorp/composer:7.1 --version | grep 'PHP 7.1.' +#docker run --rm xaicorp/composer:7.1 --version | grep 'Composer' +#docker tag xaicorp/composer:7.1 dkregistry.xai-corp.net:5000/xaicorp/composer:7.1 +#docker push dkregistry.xai-corp.net:5000/xaicorp/composer:7.1 -docker build --rm -f Dockerfile-71 -t xaicorp/composer:7.1 . -docker run --rm --entrypoint php xaicorp/composer:7.1 --version | grep 'PHP 7.1.' -docker run --rm xaicorp/composer:7.1 --version | grep 'Composer' -docker tag xaicorp/composer:7.1 dkregistry.xai-corp.net:5000/xaicorp/composer:7.1 -docker push dkregistry.xai-corp.net:5000/xaicorp/composer:7.1 - -docker build --rm -f Dockerfile-72 -t xaicorp/composer:7.2 . -docker run --rm --entrypoint php xaicorp/composer:7.2 --version | grep 'PHP 7.2.' -docker run --rm xaicorp/composer:7.2 --version | grep 'Composer' -docker tag xaicorp/composer:7.2 dkregistry.xai-corp.net:5000/xaicorp/composer:7.2 -docker push dkregistry.xai-corp.net:5000/xaicorp/composer:7.2 +#docker build --rm -f Dockerfile-72 -t xaicorp/composer:7.2 . +#docker run --rm --entrypoint php xaicorp/composer:7.2 --version | grep 'PHP 7.2.' +#docker run --rm xaicorp/composer:7.2 --version | grep 'Composer' +#docker tag xaicorp/composer:7.2 dkregistry.xai-corp.net:5000/xaicorp/composer:7.2 +#docker push dkregistry.xai-corp.net:5000/xaicorp/composer:7.2 docker build --rm -f Dockerfile-73 -t xaicorp/composer:7.3 . docker run --rm --entrypoint php xaicorp/composer:7.3 --version | grep 'PHP 7.3.' docker run --rm --entrypoint php xaicorp/composer:7.3 -mn | grep curl -docker run --rm --entrypoint git xaicorp/composer:7.3 -docker run --rm --entrypoint unzip xaicorp/composer:7.3 +docker run --rm --entrypoint git xaicorp/composer:7.3 --version | grep 'git version' +docker run --rm --entrypoint unzip xaicorp/composer:7.3 | grep 'UnZip 6' docker run --rm xaicorp/composer:7.3 --version | grep 'Composer' docker tag xaicorp/composer:7.3 dkregistry.xai-corp.net:5000/xaicorp/composer:7.3 docker push dkregistry.xai-corp.net:5000/xaicorp/composer:7.3 diff --git a/dockerfiles/tasks/php/Dockerfile-7.3 b/dockerfiles/tasks/php/Dockerfile-7.3 index 2234333..326abeb 100644 --- a/dockerfiles/tasks/php/Dockerfile-7.3 +++ b/dockerfiles/tasks/php/Dockerfile-7.3 @@ -1,6 +1,7 @@ # Create a base Ubuntu image to build upon # docker build --rm -f Dockerfile-71 -t composer:7.1 . -FROM ubuntu:16.04 +#FROM ubuntu:16.04 +FROM php:7.3-fpm as base MAINTAINER Richard Morgan WORKDIR /opt/project @@ -11,21 +12,22 @@ EXPOSE 9000 # this is not needed in prod containers, but is useful for devs ENV TERM=xterm -RUN apt-get update && apt-get install -y software-properties-common python-software-properties \ - && LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php \ - && apt-get update && apt-get install -y \ - curl nano sed libwww-perl htop ca-certificates \ - php7.3 php7.3-cli php7.3-fpm php7.3-curl php-pear php7.3-zip php7.3-mbstring php7.3-xml \ - php7.3-mysql php7.3-pgsql php7.3-redis \ - php-mcrypt php7.3-http\ - \ - && apt-cache pkgnames | grep php7.3 \ - && rm /usr/bin/php && ln -s /usr/bin/php7.3 /usr/bin/php \ - && ln -s /usr/sbin/php-fpm7.3 /usr/sbin/php-fpm \ - && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - COPY ./docker-php-fpm.conf /etc/php/7.3/fpm/pool.d/www.conf -CMD ["/usr/sbin/php-fpm7.3", "-F"] +ENTRYPOINT ["php-fpm"] +CMD ["-FO"] + +ENV DEPS \ + libpq-dev \ + libzip-dev + +RUN apt-get update && apt-get install -y $DEPS + +RUN pecl install redis-5.1.1 \ + && pecl install raphf-2.0.1 \ + && docker-php-ext-enable redis raphf + +RUN docker-php-ext-configure pgsql \ + && docker-php-ext-install -j$(nproc) pdo pdo_pgsql\ + && docker-php-ext-install -j$(nproc) zip -#php7.3-mcrypt diff --git a/dockerfiles/tasks/php/Dockerfile-7.3-dev b/dockerfiles/tasks/php/Dockerfile-7.3-dev index d359e25..fa54531 100644 --- a/dockerfiles/tasks/php/Dockerfile-7.3-dev +++ b/dockerfiles/tasks/php/Dockerfile-7.3-dev @@ -2,12 +2,19 @@ FROM xaicorp/php:7.3 MAINTAINER Richard Morgan +#RUN apt-get update && apt-get install -y \ +# php-xdebug \ +# && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ +# && echo "xdebug.remote_enable=on" >> /etc/php/7.3/mods-available/xdebug.ini \ +# && echo "xdebug.remote_autostart=on" >> /etc/php/7.3/mods-available/xdebug.ini \ +# && echo "xdebug.remote_port = 9001" >> /etc/php/7.3/mods-available/xdebug.ini \ +# && echo "xdebug.max_nesting_level=300" >> /etc/php/7.3/mods-available/xdebug.ini \ +# && echo "xdebug.remote_connect_back=1" >> /etc/php/7.3/mods-available/xdebug.ini \ +# && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + RUN apt-get update && apt-get install -y \ - php-xdebug \ - && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ - && echo "xdebug.remote_enable=on" >> /etc/php/7.3/mods-available/xdebug.ini \ - && echo "xdebug.remote_autostart=on" >> /etc/php/7.3/mods-available/xdebug.ini \ - && echo "xdebug.remote_port = 9001" >> /etc/php/7.3/mods-available/xdebug.ini \ - && echo "xdebug.max_nesting_level=300" >> /etc/php/7.3/mods-available/xdebug.ini \ - && echo "xdebug.remote_connect_back=1" >> /etc/php/7.3/mods-available/xdebug.ini \ - && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + git \ + && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +RUN pecl install xdebug-2.8.1 \ + && docker-php-ext-enable xdebug diff --git a/dockerfiles/tasks/php/build.sh b/dockerfiles/tasks/php/build.sh index b02c941..c000bb9 100755 --- a/dockerfiles/tasks/php/build.sh +++ b/dockerfiles/tasks/php/build.sh @@ -1,9 +1,10 @@ #!/usr/bin/env bash -set -ex +set -e #docker login -u richard -p $DKREGISTRY_PASS $DKREGISTRY build() { + set -x local version=$1 #build @@ -12,6 +13,7 @@ build() { #test docker run --rm --entrypoint php xaicorp/php:${version} --version | grep ${version} docker run --rm --entrypoint php xaicorp/php:${version} -m | grep curl + docker run --rm --entrypoint php xaicorp/php:${version} -m | grep pdo docker run --rm --entrypoint php xaicorp/php:${version} -m | grep pgsql docker run --rm --entrypoint php xaicorp/php:${version} -m | grep redis docker run --rm --entrypoint php xaicorp/php:${version} -m | grep mbstring @@ -19,11 +21,13 @@ build() { # docker run --rm --entrypoint php xaicorp/php:${version} -m | grep mcrypt docker run --rm --entrypoint php xaicorp/php:${version} -m | grep zip docker run --rm --entrypoint php xaicorp/php:${version} -m | grep dom - docker run --rm --entrypoint php xaicorp/php:${version} -i | grep conf.d/25-http.ini - - #register artifact - docker tag xaicorp/php:${version} dkregistry.xai-corp.net:5000/xaicorp/php:${version} - docker push dkregistry.xai-corp.net:5000/xaicorp/php:${version} + docker run --rm --entrypoint php xaicorp/php:${version} -m | grep json + docker run --rm --entrypoint php xaicorp/php:${version} -m | grep raphf + docker run --rm -d --name test-php xaicorp/php:${version} \ + && sleep 3 \ + && docker logs test-php | grep "fpm is running"; \ + docker kill test-php +# docker run --rm --entrypoint php xaicorp/php:${version} -i | grep conf.d/25-http.ini #fixme } build_dev() { @@ -35,6 +39,15 @@ build_dev() { #test docker run --rm --entrypoint php xaicorp/php:${version}-dev --version | grep ${version} docker run --rm --entrypoint php xaicorp/php:${version}-dev --version | grep 'Xdebug' + docker run --rm --entrypoint git xaicorp/php:${version}-dev --version | grep 'git version' +} + +push() { + local version=$1 + + #register artifact + docker tag xaicorp/php:${version} dkregistry.xai-corp.net:5000/xaicorp/php:${version} + docker push dkregistry.xai-corp.net:5000/xaicorp/php:${version} #register artifact docker tag xaicorp/php:${version}-dev dkregistry.xai-corp.net:5000/xaicorp/php:${version}-dev @@ -61,10 +74,12 @@ trap final EXIT #build 7.1 #build_dev 7.1 -build 7.2 -build_dev 7.2 +#build 7.2 +#build_dev 7.2 +#push 7.2 build 7.3 build_dev 7.3 +push 7.3 exit