update php build to include basic php7.3

updated robo build
This commit is contained in:
2020-04-19 11:24:26 -04:00
parent 94d7b04002
commit 33e945f662
15 changed files with 129 additions and 113 deletions

View File

@@ -0,0 +1,28 @@
# Create a base Ubuntu image to build upon
# docker build --rm -f Dockerfile-72 -t composer:7.2 .
FROM dkregistry.xai-corp.net:5000/xaicorp/php:7.3-dev
MAINTAINER Richard Morgan <r_morgan@sympatico.ca>
WORKDIR /opt/project
# set terminal variable so that tools such as nano and htop work
# 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\
&& useradd -u 1000 -d /home/user user \
&& mkdir -p /home/user/.composer && chmod -R 777 /home/user/.composer
ENTRYPOINT ["/usr/local/bin/composer"]

7
dockerfiles/tasks/composer/build.sh Normal file → Executable file
View File

@@ -18,3 +18,10 @@ 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 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 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 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 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

View File

@@ -0,0 +1,18 @@
FROM php:7.3-fpm
MAINTAINER Richard Morgan <r_morgan@sympatico.ca>
WORKDIR /opt/project
#CMD ["/usr/sbin/php-fpm7.3", "-F"]
COPY ./docker-php-fpm.conf /etc/php/7.3fpm/pool.d/www.conf
RUN pecl install redis-5.1.1 \
&& pecl install memcached-3.1.5 \
&& pecl install apcu-5.1.18 \
&& docker-php-ext-enable redis memcached apcu
RUN docker-php-ext-install mysql pgsql cli curl mcrypt zip mbstring xml
RUN docker-php-ext-enable mysql pgsql cli curl mcrypt zip mbstring xml

View File

@@ -0,0 +1,22 @@
FROM dkregistry.xai-corp.net:5000/xaicorp/php:7.3
MAINTAINER Richard Morgan <r_morgan@sympatico.ca>
WORKDIR /opt/project
#CMD ["/usr/sbin/php-fpm7.3", "-F"]
COPY ./docker-php-fpm.conf /usr/local/etc/php-fpm.d/www.conf
RUN apt-get update && apt-get install -y curl nano sed git zip \
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN pecl install redis-5.1.1 \
&& pecl install xdebug-2.9.4 \
&& docker-php-ext-enable redis xdebug
RUN echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_autostart=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_port = 9001" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.max_nesting_level=300" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_connect_back=1" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

View File

@@ -1,8 +0,0 @@
FROM php:7.3-fpm
MAINTAINER Richard Morgan <r_morgan@sympatico.ca>
WORKDIR /opt/project
#CMD ["/usr/sbin/php-fpm7.3", "-F"]
COPY ./docker-php-fpm.conf /etc/php/7.3fpm/pool.d/www.conf

View File

@@ -1,88 +1,12 @@
def workdir = "dockerfiles/tasks/php"
pipeline { pipeline {
agent { label 'docker' } agent any
triggers { triggers {
cron('@daily') cron('@daily')
} }
options {
disableConcurrentBuilds()
buildDiscarder(logRotator(numToKeepStr: '2'))
}
stages { stages {
stage('Build PHP Images in Parallel') { stage('Build Image') {
failFast false steps {
parallel { build job: '_build_image', parameters: [string(name: 'IMAGE', value: 'php')], quietPeriod: 1
stage("php70") {
steps {
script {
def version = "7.0"
def dockerfile = "Dockerfile-70"
dir(workdir) {
docker.withRegistry('http://dkregistry.xai-corp.net:5000', 'b11d7f1a-81ac-4daf-8842-56afc0d2370e') {
def customImage = docker.build("dkregistry.xai-corp.net:5000/xaicorp/php:${version}", "-f ${dockerfile} .")
customImage.inside() {
sh "php --version | grep 'PHP 7.0'"
}
customImage.push()
}
}
}
}
}
stage ("php71") {
steps {
script {
def version = "7.1"
def dockerfile = "Dockerfile-71"
dir(workdir) {
docker.withRegistry('http://dkregistry.xai-corp.net:5000', 'b11d7f1a-81ac-4daf-8842-56afc0d2370e') {
def customImage = docker.build("dkregistry.xai-corp.net:5000/xaicorp/php:${version}", "-f ${dockerfile} .")
customImage.inside() {
sh "php --version | grep 'PHP 7.1'"
}
customImage.push()
}
}
}
}
}
stage ("php72") {
steps {
script {
def version = "7.2"
def dockerfile = "Dockerfile-72"
dir(workdir) {
docker.withRegistry('http://dkregistry.xai-corp.net:5000', 'b11d7f1a-81ac-4daf-8842-56afc0d2370e') {
def customImage = docker.build("dkregistry.xai-corp.net:5000/xaicorp/php:${version}", "-f ${dockerfile} .")
customImage.inside() {
sh "php --version | grep 'PHP 7.2'"
}
customImage.push()
}
}
}
}
}
stage ("php72-dev") {
steps {
script {
def version = "7.2-dev"
def dockerfile = "Dockerfile-72-dev"
dir(workdir) {
docker.withRegistry('http://dkregistry.xai-corp.net:5000', 'b11d7f1a-81ac-4daf-8842-56afc0d2370e') {
def customImage = docker.build("dkregistry.xai-corp.net:5000/xaicorp/php:${version}", "-f ${dockerfile} .")
customImage.inside() {
sh "php --version | grep 'PHP 7.2'"
sh "php --version | grep 'Xdebug'"
}
customImage.push()
}
}
}
}
}
} }
} }
} }

View File

@@ -1,16 +1,51 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -ex
#docker login -u richard -p $DKREGISTRY_PASS $DKREGISTRY #docker login -u richard -p $DKREGISTRY_PASS $DKREGISTRY
docker build --rm -f Dockerfile-70 -t xaicorp/php:7.0 . build() {
docker build --rm -f Dockerfile-70-dev -t xaicorp/php:7.0-dev . local version=$1
docker run --rm --entrypoint php xaicorp/php:7.0 --version | grep 'PHP 7.0.'
docker run --rm --entrypoint php xaicorp/php:7.0-dev --version | grep 'PHP 7.0.' #build
docker run --rm --entrypoint php xaicorp/php:7.0-dev --version | grep 'Xdebug' docker build --rm -f Dockerfile-${version} -t xaicorp/php:${version} .
docker tag xaicorp/php:7.0 dkregistry.xai-corp.net:5000/xaicorp/php:7.0
docker tag xaicorp/php:7.0-dev dkregistry.xai-corp.net:5000/xaicorp/php:7.0-dev #test
docker push dkregistry.xai-corp.net:5000/xaicorp/php:7.0 docker run --rm --entrypoint php xaicorp/php:${version} --version | grep ${version}
docker push dkregistry.xai-corp.net:5000/xaicorp/php:7.0-dev docker run --rm --entrypoint php xaicorp/php:${version} -m | grep curl
#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}
}
build_dev() {
local version=$1
#build
docker build --rm -f Dockerfile-${version}-dev -t xaicorp/php:${version}-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'
#register artifact
docker tag xaicorp/php:${version}-dev dkregistry.xai-corp.net:5000/xaicorp/php:${version}-dev
docker push dkregistry.xai-corp.net:5000/xaicorp/php:${version}-dev
}
build 7.0
build_dev 7.0
#build 7.1
#build_dev 7.1
#
#build 7.2
#build_dev 7.2
build 7.3
build_dev 7.3
exit
docker build --rm -f Dockerfile-71 -t xaicorp/php:7.1 . docker build --rm -f Dockerfile-71 -t xaicorp/php:7.1 .
docker build --rm -f Dockerfile-71-dev -t xaicorp/php:7.1-dev . docker build --rm -f Dockerfile-71-dev -t xaicorp/php:7.1-dev .

View File

@@ -1,22 +1,10 @@
# php Robo task runner container # php Robo task runner container
#
#FROM dkregistry.xai-corp.net:5000/xaicorp/php:7.2
#MAINTAINER Richard Morgan <r_morgan@sympatico.ca>
#
#RUN curl -L --fail http://robo.li/robo.phar -o robo.phar\
# && chmod +x robo.phar && mv robo.phar /usr/local/bin/robo
#
#RUN mkdir -p /opt/project
#
#ENTRYPOINT ["robo"]
#WORKDIR /opt/project
FROM dkregistry.xai-corp.net:5000/xaicorp/composer:7.2 AS composer FROM dkregistry.xai-corp.net:5000/xaicorp/composer:7.3 AS composer
MAINTAINER Richard Morgan <r_morgan@sympatico.ca> MAINTAINER Richard Morgan <r_morgan@sympatico.ca>
RUN composer global require consolidation/robo ~2.0 RUN composer global require consolidation/robo ~2.0
#RUN composer global require droath/robo-docker-compose
RUN composer global config repositories.xaicorp/robo-docker-compose vcs https://git.xai-corp.net/xai-corp.net/robo-docker-compose.git RUN composer global config repositories.xaicorp/robo-docker-compose vcs https://git.xai-corp.net/xai-corp.net/robo-docker-compose.git
RUN composer global require xaicorp/robo-docker-compose ~1.0 RUN composer global require xaicorp/robo-docker-compose ~1.0
@@ -24,9 +12,10 @@ RUN composer global require xaicorp/robo-docker-compose ~1.0
FROM dkregistry.xai-corp.net:5000/xaicorp/php:7.2 FROM dkregistry.xai-corp.net:5000/xaicorp/php:7.2
MAINTAINER Richard Morgan <r_morgan@sympatico.ca> MAINTAINER Richard Morgan <r_morgan@sympatico.ca>
COPY --from=composer /root/.composer /root/.composer COPY --from=composer /root/.composer /opt/.composer
RUN chmod -R 777 /opt/.composer
RUN mkdir -p /opt/project RUN mkdir -p /opt/project
WORKDIR /opt/project WORKDIR /opt/project
ENTRYPOINT ["php", "/root/.composer/vendor/bin/robo"] ENTRYPOINT ["php", "/opt/.composer/vendor/bin/robo"]

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -ex
#if [[ -z "${DKREGISTRY_PASS}" ]]; then #if [[ -z "${DKREGISTRY_PASS}" ]]; then
# docker login -u richard -p $DKREGISTRY_PASS $DKREGISTRY # docker login -u richard -p $DKREGISTRY_PASS $DKREGISTRY
@@ -7,6 +7,7 @@ set -e
docker build --rm -f Dockerfile -t xaicorp/php-robo . docker build --rm -f Dockerfile -t xaicorp/php-robo .
docker run --rm xaicorp/php-robo --version | grep 'Robo 2.0.' docker run --rm xaicorp/php-robo --version | grep 'Robo 2.0.'
docker run --rm --entrypoint php xaicorp/php-robo -m | grep 'curl'
docker tag xaicorp/php-robo dkregistry.xai-corp.net:5000/xaicorp/php-robo docker tag xaicorp/php-robo dkregistry.xai-corp.net:5000/xaicorp/php-robo
docker push dkregistry.xai-corp.net:5000/xaicorp/php-robo docker push dkregistry.xai-corp.net:5000/xaicorp/php-robo