From be35f1cd3d0a97010ff0327b1d9e9cdae3796a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Marseille?= Date: Fri, 26 Jan 2018 11:14:40 +0100 Subject: [PATCH] Fix issue with iconv in PHP image and use Alpine binary of ci-helper --- .travis.yml | 16 ++++----- CHANGELOG.md | 2 ++ ansible/Dockerfile | 9 ++--- aws/Dockerfile | 8 ++--- dind-aws/Dockerfile | 14 ++++---- golang/Dockerfile | 2 +- java/Dockerfile | 2 +- node/Dockerfile | 2 +- php/5.3/Dockerfile | 2 +- php/Dockerfile.tpl | 19 +++++----- ruby/Dockerfile | 8 ++--- sonar/Dockerfile | 16 +++++---- travis.py | 84 ++++++++++++++++++++++----------------------- 13 files changed, 87 insertions(+), 97 deletions(-) diff --git a/.travis.yml b/.travis.yml index 221d05936..fb1191759 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,19 +7,19 @@ services: matrix: include: + - env: LANGUAGE=ansible VERSION=2.3.0.0-r1 PYTHON_VERSION=2.7.13-r1 + - env: LANGUAGE=aws VERSION=1 + - env: LANGUAGE=dind-aws VERSION=1 DOCKER_COMPOSE_VERSION=1.18.0 GLIBC_VERSION=2.23-r3 + - env: LANGUAGE=golang VERSION=1.9 GLIDE_VERSION=v0.13.1 + - env: LANGUAGE=java VERSION=8 JAVA_VERSION=8u161-1~webupd8~0 - env: LANGUAGE=node VERSION=6.12 NODE_VERSION=6.12.3 NPM_VERSION=3.10.10 - env: LANGUAGE=node VERSION=8.9 NODE_VERSION=8.9.4 NPM_VERSION=5.6.0 - env: LANGUAGE=node VERSION=9.4 NODE_VERSION=9.4.0 NPM_VERSION=5.6.0 - - env: LANGUAGE=java VERSION=8 JAVA_VERSION=8u161-1~webupd8~0 - env: LANGUAGE=php VERSION=5.3 PHP_VERSION=5.3.10 PHP_BUILD_INSTALL_EXTENSION=apcu=4.0.11 REDIS_VERSION=3.1.6 SECURITY_CHECKER_VERSION=2.0.6 - - env: LANGUAGE=php VERSION=5.6 PHP_VERSION=5.6.33-cli-alpine APCU_VERSION=4.0.11 COMPOSER_VERSION=1.6.2 GLIBC_VERSION=2.26-r0 REDIS_VERSION=3.1.6 SECURITY_CHECKER_VERSION=4.1.6 XDEBUG_VERSION=2_5_5 - - env: LANGUAGE=php VERSION=7.1 PHP_VERSION=7.1.13-cli-alpine APCU_VERSION=5.1.9 COMPOSER_VERSION=1.6.2 GLIBC_VERSION=2.26-r0 REDIS_VERSION=3.1.6 SECURITY_CHECKER_VERSION=4.1.7 XDEBUG_VERSION=2_5_5 - - env: LANGUAGE=aws VERSION=1 - - env: LANGUAGE=dind-aws VERSION=1 DOCKER_COMPOSE_VERSION=1.18.0 - - env: LANGUAGE=golang VERSION=1.9 GLIDE_VERSION=v0.13.1 + - env: LANGUAGE=php VERSION=5.6 PHP_VERSION=5.6.33-cli-alpine APCU_VERSION=4.0.11 COMPOSER_VERSION=1.6.2 REDIS_VERSION=3.1.6 SECURITY_CHECKER_VERSION=4.1.6 XDEBUG_VERSION=2_5_5 + - env: LANGUAGE=php VERSION=7.1 PHP_VERSION=7.1.13-cli-alpine APCU_VERSION=5.1.9 COMPOSER_VERSION=1.6.2 REDIS_VERSION=3.1.6 SECURITY_CHECKER_VERSION=4.1.7 XDEBUG_VERSION=2_5_5 - env: LANGUAGE=ruby VERSION=2.5 - - env: LANGUAGE=ansible VERSION=2.3.0.0-r1 PYTHON_VERSION=2.7.13-r1 GLIBC_VERSION=2.26-r0 - - env: LANGUAGE=sonar VERSION=3.0 SONARSCANNER_VERSION=3.0.3.778 + - env: LANGUAGE=sonar VERSION=3.0 GLIBC_VERSION=2.23-r3 SONARSCANNER_VERSION=3.0.3.778 script: - travis_wait python travis.py diff --git a/CHANGELOG.md b/CHANGELOG.md index a09f801da..47b75193d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ Versions 2018-01-DEV ----------- +* Use Alpine binary of ci-helper for Ansible, AWS, DIND-AWS, PHP >= 5.6, Ruby and Sonar images +* Fix deprecated MAINTAINER instruction * BC break: PHP image is now based on Alpine - intl for PHP 7.2 is not released yet, so image 7.2 is not available anymore * Upgrade modd version: 0.5 diff --git a/ansible/Dockerfile b/ansible/Dockerfile index 5de7b6af6..a59e3b5bc 100644 --- a/ansible/Dockerfile +++ b/ansible/Dockerfile @@ -1,7 +1,6 @@ FROM alpine:3.6 ARG CI_HELPER_VERSION -ARG GLIBC_VERSION ARG PYTHON_VERSION ARG VERSION @@ -10,10 +9,6 @@ RUN echo "Install Ansible with deps" && \ apk --update --no-cache add bash ca-certificates curl git openssh-client python=${PYTHON_VERSION} py-pip ansible=${VERSION} && \ echo "Done install Ansible with deps" &&\ echo "Install CI Helper" && \ - curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub && \ - curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk -O && \ - apk add -q glibc-${GLIBC_VERSION}.apk && \ - rm /etc/apk/keys/sgerrand.rsa.pub glibc-${GLIBC_VERSION}.apk && \ - curl -sSL https://github.com/rande/gitlab-ci-helper/releases/download/${CI_HELPER_VERSION}/linux-amd64-gitlab-ci-helper -o /usr/bin/ci-helper && \ + curl -sSL https://github.com/rande/gitlab-ci-helper/releases/download/${CI_HELPER_VERSION}/alpine-amd64-gitlab-ci-helper -o /usr/bin/ci-helper && \ chmod 755 /usr/bin/ci-helper && \ - echo "Done install CI Helper" \ No newline at end of file + echo "Done install CI Helper" diff --git a/aws/Dockerfile b/aws/Dockerfile index 1c5f59cc2..9cba711a9 100644 --- a/aws/Dockerfile +++ b/aws/Dockerfile @@ -1,5 +1,5 @@ FROM alpine:3.4 -MAINTAINER Frank Pavageau +LABEL maintainer="Frank Pavageau " ARG CI_HELPER_VERSION @@ -10,10 +10,6 @@ RUN echo "Install AWS" && \ echo "Done install AWS" && \ echo "Install CI Helper" && \ - curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub && \ - curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/glibc-2.23-r3.apk -O && \ - apk add -q glibc-2.23-r3.apk && \ - rm /etc/apk/keys/sgerrand.rsa.pub glibc-2.23-r3.apk && \ - curl -sSL https://github.com/rande/gitlab-ci-helper/releases/download/${CI_HELPER_VERSION}/linux-amd64-gitlab-ci-helper -o /usr/bin/ci-helper && \ + curl -sSL https://github.com/rande/gitlab-ci-helper/releases/download/${CI_HELPER_VERSION}/alpine-amd64-gitlab-ci-helper -o /usr/bin/ci-helper && \ chmod 755 /usr/bin/ci-helper && \ echo "Done install CI Helper" diff --git a/dind-aws/Dockerfile b/dind-aws/Dockerfile index 0a5ea0e99..acb4ca03a 100644 --- a/dind-aws/Dockerfile +++ b/dind-aws/Dockerfile @@ -1,9 +1,9 @@ FROM docker:18.01.0-ce-dind -MAINTAINER Rémi Marseille +LABEL maintainer="Rémi Marseille " ARG CI_HELPER_VERSION ARG DOCKER_COMPOSE_VERSION -ARG GLIBC_VERSION=2.23-r3 +ARG GLIBC_VERSION RUN echo "Install AWS" && \ apk add -q --no-cache bash ca-certificates curl git make openssh-client python py-pip rsync tzdata && \ @@ -11,16 +11,16 @@ RUN echo "Install AWS" && \ echo "Done install AWS" && \ echo "Install CI Helper" && \ + curl -sSL https://github.com/rande/gitlab-ci-helper/releases/download/${CI_HELPER_VERSION}/alpine-amd64-gitlab-ci-helper -o /usr/bin/ci-helper && \ + chmod 755 /usr/bin/ci-helper && \ + echo "Done install CI Helper" && \ + + echo "Install Docker Compose" && \ curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub && \ curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk -O && \ curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-bin-${GLIBC_VERSION}.apk -O && \ apk add --update -q glibc-${GLIBC_VERSION}.apk glibc-bin-${GLIBC_VERSION}.apk && \ rm /etc/apk/keys/sgerrand.rsa.pub glibc-${GLIBC_VERSION}.apk glibc-bin-${GLIBC_VERSION}.apk && \ - curl -sSL https://github.com/rande/gitlab-ci-helper/releases/download/${CI_HELPER_VERSION}/linux-amd64-gitlab-ci-helper -o /usr/bin/ci-helper && \ - chmod 755 /usr/bin/ci-helper && \ - echo "Done install CI Helper" && \ - - echo "Install Docker Compose" && \ curl -sSL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose && \ chmod +x /usr/local/bin/docker-compose && \ docker-compose --version && \ diff --git a/golang/Dockerfile b/golang/Dockerfile index 321fea47e..4d21b4607 100644 --- a/golang/Dockerfile +++ b/golang/Dockerfile @@ -1,5 +1,5 @@ FROM golang:1.8 -MAINTAINER Raphaël Benitte +LABEL maintainer="Raphaël Benitte " ARG GLIDE_VERSION ARG CI_HELPER_VERSION diff --git a/java/Dockerfile b/java/Dockerfile index 8fd7c173d..d73fcbc54 100644 --- a/java/Dockerfile +++ b/java/Dockerfile @@ -1,5 +1,5 @@ FROM debian:8.7 -MAINTAINER Stephane Leclercq +LABEL maintainer="Stephane Leclercq " ENV DEBIAN_FRONTEND=noninteractive \ LANG=C.UTF-8 diff --git a/node/Dockerfile b/node/Dockerfile index edf0b4bd8..4fad88145 100644 --- a/node/Dockerfile +++ b/node/Dockerfile @@ -1,5 +1,5 @@ FROM debian:8.7 -MAINTAINER Thomas Rabaix +LABEL maintainer="Thomas Rabaix " ENV DEBIAN_FRONTEND=noninteractive \ LANG=C.UTF-8 \ diff --git a/php/5.3/Dockerfile b/php/5.3/Dockerfile index bfa4716cc..be5b66c12 100644 --- a/php/5.3/Dockerfile +++ b/php/5.3/Dockerfile @@ -1,5 +1,5 @@ FROM jolicode/phpenv -MAINTAINER Rémi Marseille +LABEL maintainer="Rémi Marseille " ARG PHP_VERSION ARG CI_HELPER_VERSION diff --git a/php/Dockerfile.tpl b/php/Dockerfile.tpl index bd75e6e85..e5c7ed1d9 100644 --- a/php/Dockerfile.tpl +++ b/php/Dockerfile.tpl @@ -1,31 +1,30 @@ FROM php:{{PHP_VERSION}} -MAINTAINER Rémi Marseille +LABEL maintainer="Rémi Marseille " ARG APCU_VERSION ARG CI_HELPER_VERSION ARG COMPOSER_VERSION -ARG GLIBC_VERSION ARG MODD_VERSION ARG REDIS_VERSION ARG SECURITY_CHECKER_VERSION ARG XDEBUG_VERSION +# iconv issue https://github.com/docker-library/php/issues/240 + ENV COMPOSER_NO_INTERACTION=1 \ - TERM=xterm + TERM=xterm \ + LD_PRELOAD="/usr/lib/preloadable_libiconv.so php" RUN echo "Starting ..." && \ echo "@edge-community http://nl.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories && \ echo "@edge-main http://nl.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories && \ - apk add --update --upgrade alpine-sdk autoconf bash bzip2 curl freetype-dev git icu-dev@edge-main libjpeg-turbo-dev libmcrypt-dev \ - libpng-dev libxml2-dev make openssh-client php{{PHP_MAJOR_VERSION}}-intl@edge-community postgresql-dev tzdata && \ + echo "@edge-testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \ + apk add --update --upgrade alpine-sdk autoconf bash bzip2 curl freetype-dev git gnu-libiconv@edge-testing icu-dev@edge-main libjpeg-turbo-dev \ + libmcrypt-dev libpng-dev libxml2-dev make openssh-client php{{PHP_MAJOR_VERSION}}-intl@edge-community postgresql-dev tzdata && \ echo "Done base install!" && \ echo "Install CI Helper" && \ - curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub && \ - curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk -O && \ - apk add -q glibc-${GLIBC_VERSION}.apk && \ - rm /etc/apk/keys/sgerrand.rsa.pub glibc-${GLIBC_VERSION}.apk && \ - curl -sSL https://github.com/rande/gitlab-ci-helper/releases/download/${CI_HELPER_VERSION}/linux-amd64-gitlab-ci-helper -o /usr/bin/ci-helper && \ + curl -sSL https://github.com/rande/gitlab-ci-helper/releases/download/${CI_HELPER_VERSION}/alpine-amd64-gitlab-ci-helper -o /usr/bin/ci-helper && \ chmod 755 /usr/bin/ci-helper && \ echo "Done install CI Helper" && \ diff --git a/ruby/Dockerfile b/ruby/Dockerfile index 3075d22e2..6485bc557 100644 --- a/ruby/Dockerfile +++ b/ruby/Dockerfile @@ -1,5 +1,5 @@ FROM ruby:2.5.0-alpine -MAINTAINER Rémi Marseille +LABEL maintainer="Rémi Marseille " ARG CI_HELPER_VERSION @@ -8,11 +8,7 @@ RUN echo "Starting ..." && \ echo "Done base install!" && \ echo "Install CI Helper" && \ - curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub && \ - curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/glibc-2.23-r3.apk -O && \ - apk add -q glibc-2.23-r3.apk && \ - rm /etc/apk/keys/sgerrand.rsa.pub glibc-2.23-r3.apk && \ - curl -sSL https://github.com/rande/gitlab-ci-helper/releases/download/${CI_HELPER_VERSION}/linux-amd64-gitlab-ci-helper -o /usr/bin/ci-helper && \ + curl -sSL https://github.com/rande/gitlab-ci-helper/releases/download/${CI_HELPER_VERSION}/alpine-amd64-gitlab-ci-helper -o /usr/bin/ci-helper && \ chmod 755 /usr/bin/ci-helper && \ echo "Done install CI Helper" && \ diff --git a/sonar/Dockerfile b/sonar/Dockerfile index 57a1a74d4..9e25abe59 100644 --- a/sonar/Dockerfile +++ b/sonar/Dockerfile @@ -1,17 +1,23 @@ FROM alpine:3.4 +LABEL maintainer="Thomas Rabaix " ARG SONARSCANNER_VERSION ENV PATH=/sonar-scanner/bin:/sonar-scanner/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin -ARG SONARSCANNER_VERSION ARG CI_HELPER_VERSION +ARG GLIBC_VERSION +ARG SONARSCANNER_VERSION RUN echo "Starting ..." && \ apk --update upgrade && apk add curl make tzdata unzip && \ echo "Done base install!" && \ echo "Starting Sonar Scanner" && \ + curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub && \ + curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk -O && \ + apk add -q glibc-${GLIBC_VERSION}.apk && \ + rm /etc/apk/keys/sgerrand.rsa.pub glibc-${GLIBC_VERSION}.apk && \ curl --insecure -o ./sonarscanner.zip -L https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONARSCANNER_VERSION}-linux.zip && \ unzip sonarscanner.zip && \ rm sonarscanner.zip && \ @@ -19,13 +25,9 @@ RUN echo "Starting ..." && \ echo "Done Sonar Scanner!" && \ echo "Install CI Helper" && \ - curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub && \ - curl -sSL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/glibc-2.23-r3.apk -O && \ - apk add -q glibc-2.23-r3.apk && \ - rm /etc/apk/keys/sgerrand.rsa.pub glibc-2.23-r3.apk && \ - curl -sSL https://github.com/rande/gitlab-ci-helper/releases/download/${CI_HELPER_VERSION}/linux-amd64-gitlab-ci-helper -o /usr/bin/ci-helper && \ + curl -sSL https://github.com/rande/gitlab-ci-helper/releases/download/${CI_HELPER_VERSION}/alpine-amd64-gitlab-ci-helper -o /usr/bin/ci-helper && \ chmod 755 /usr/bin/ci-helper && \ - echo "Done install CI Helper" && \ + echo "Done install CI Helper" && \ echo "Cleaning files!" && \ rm -rf /tmp/* /var/cache/apk/* && \ diff --git a/travis.py b/travis.py index c14b7c69a..c8d2bbf12 100644 --- a/travis.py +++ b/travis.py @@ -134,32 +134,33 @@ def run_build(buildInfo): build_args = "--build-arg CI_HELPER_VERSION=%s" % ci_helper_version build_context = language run_args = "--rm" - if language == "php": - if version == "5.3": - build_args = "%s --build-arg MODD_VERSION=%s --build-arg PHP_VERSION=%s --build-arg REDIS_VERSION=%s --build-arg SECURITY_CHECKER_VERSION=%s" % (build_args, buildInfo.modd, os.environ.get("PHP_VERSION"), os.environ.get("REDIS_VERSION"), os.environ.get("SECURITY_CHECKER_VERSION")) - build_context = "%s/%s" % (language, version) - else: - build_args = "%s --build-arg MODD_VERSION=%s --build-arg APCU_VERSION=%s --build-arg COMPOSER_VERSION=%s --build-arg GLIBC_VERSION=%s --build-arg REDIS_VERSION=%s --build-arg SECURITY_CHECKER_VERSION=%s --build-arg XDEBUG_VERSION=%s" % (build_args, buildInfo.modd, os.environ.get("APCU_VERSION"), os.environ.get("COMPOSER_VERSION"), os.environ.get("GLIBC_VERSION"), os.environ.get("REDIS_VERSION"), os.environ.get("SECURITY_CHECKER_VERSION"), os.environ.get("XDEBUG_VERSION")) - build_context = "-f %s/Dockerfile.%s %s" % (language, version, language) - run_command_exit('sed -e "s,{{PHP_VERSION}},%s," -e "s,{{PHP_MAJOR_VERSION}},%s," %s/Dockerfile.tpl > %s/Dockerfile.%s' % (os.environ.get("PHP_VERSION"), version.split(".")[0], language, language, version), "fail to create Dockerfile for %s %s" % (language, os.environ.get("PHP_VERSION"))) - if language == "java": - build_args = "%s --build-arg MODD_VERSION=%s --build-arg JAVA_VERSION=%s" % (build_args, buildInfo.modd, os.environ.get("JAVA_VERSION")) + if language == "ansible": + build_args = "%s --build-arg VERSION=%s --build-arg PYTHON_VERSION=%s" % (build_args, buildInfo.version, os.environ.get("PYTHON_VERSION")) - if language == "node": - build_args = "%s --build-arg MODD_VERSION=%s --build-arg NODE_VERSION=%s --build-arg NPM_VERSION=%s" % (build_args, buildInfo.modd, os.environ.get("NODE_VERSION"), os.environ.get("NPM_VERSION")) + if language == "dind-aws": + build_args = "%s --build-arg DOCKER_COMPOSE_VERSION=%s --build-arg GLIBC_VERSION=%s" % (build_args, os.environ.get("DOCKER_COMPOSE_VERSION"), os.environ.get("GLIBC_VERSION")) if language == "golang": build_args = "%s --build-arg MODD_VERSION=%s --build-arg GLIDE_VERSION=%s" % (build_args, buildInfo.modd, os.environ.get("GLIDE_VERSION")) - if language == "dind-aws": - build_args = "%s --build-arg DOCKER_VERSION=%s --build-arg DOCKER_COMPOSE_VERSION=%s" % (build_args, os.environ.get("DOCKER_VERSION"), os.environ.get("DOCKER_COMPOSE_VERSION")) + if language == "java": + build_args = "%s --build-arg MODD_VERSION=%s --build-arg JAVA_VERSION=%s" % (build_args, buildInfo.modd, os.environ.get("JAVA_VERSION")) - if language == "ansible": - build_args = "%s --build-arg VERSION=%s --build-arg PYTHON_VERSION=%s --build-arg GLIBC_VERSION=%s" % (build_args, buildInfo.version, os.environ.get("PYTHON_VERSION"), os.environ.get("GLIBC_VERSION")) + if language == "node": + build_args = "%s --build-arg MODD_VERSION=%s --build-arg NODE_VERSION=%s --build-arg NPM_VERSION=%s" % (build_args, buildInfo.modd, os.environ.get("NODE_VERSION"), os.environ.get("NPM_VERSION")) + + if language == "php": + if version == "5.3": + build_args = "%s --build-arg MODD_VERSION=%s --build-arg PHP_VERSION=%s --build-arg REDIS_VERSION=%s --build-arg SECURITY_CHECKER_VERSION=%s" % (build_args, buildInfo.modd, os.environ.get("PHP_VERSION"), os.environ.get("REDIS_VERSION"), os.environ.get("SECURITY_CHECKER_VERSION")) + build_context = "%s/%s" % (language, version) + else: + build_args = "%s --build-arg MODD_VERSION=%s --build-arg APCU_VERSION=%s --build-arg COMPOSER_VERSION=%s --build-arg REDIS_VERSION=%s --build-arg SECURITY_CHECKER_VERSION=%s --build-arg XDEBUG_VERSION=%s" % (build_args, buildInfo.modd, os.environ.get("APCU_VERSION"), os.environ.get("COMPOSER_VERSION"), os.environ.get("REDIS_VERSION"), os.environ.get("SECURITY_CHECKER_VERSION"), os.environ.get("XDEBUG_VERSION")) + build_context = "-f %s/Dockerfile.%s %s" % (language, version, language) + run_command_exit('sed -e "s,{{PHP_VERSION}},%s," -e "s,{{PHP_MAJOR_VERSION}},%s," %s/Dockerfile.tpl > %s/Dockerfile.%s' % (os.environ.get("PHP_VERSION"), version.split(".")[0], language, language, version), "fail to create Dockerfile for %s %s" % (language, os.environ.get("PHP_VERSION"))) if language == "sonar": - build_args = "%s --build-arg SONARSCANNER_VERSION=%s" % (build_args, os.environ.get("SONARSCANNER_VERSION")) + build_args = "%s --build-arg GLIBC_VERSION=%s --build-arg SONARSCANNER_VERSION=%s" % (build_args, os.environ.get("GLIBC_VERSION"), os.environ.get("SONARSCANNER_VERSION")) cmd = "docker build -t %s %s --no-cache %s" % (image, build_args, build_context) @@ -169,25 +170,10 @@ def run_build(buildInfo): run_command_exit("docker run %s %s ci-helper version -e" % (run_args, image), "Error with ci-helper installation") - if language == "php": - print "> Testing PHP Image..." - run_command_exit("docker run %s %s php --version" % (run_args, image), "Error with php check") - run_command_exit("docker run %s %s composer --version" % (run_args, image), "Error with composer check") - run_command_exit("docker run %s %s modd --version" % (run_args, image), "Error with modd check") - run_command_exit("docker run %s %s security-checker --version" % (run_args, image), "Error with security-checker check") - - if language == "java": - print "> Testing Java Image..." - run_command_exit("docker run %s %s java -version" % (run_args, image), "Error with java check") - run_command_exit("docker run %s %s mvn --version" % (run_args, image), "Error with mvn check") - run_command_exit("docker run %s %s modd --version" % (run_args, image), "Error with modd check") - - if language == "node": - print "> Testing Node Image..." - run_command_exit("docker run %s %s node --version" % (run_args, image), "Error with node check") - run_command_exit("docker run %s %s npm --version" % (run_args, image), "Error with npm check") - run_command_exit("docker run %s %s sass --version" % (run_args, image), "Error with sass check") - run_command_exit("docker run %s %s modd --version" % (run_args, image), "Error with modd check") + if language == "ansible": + print "> Testing Ansible Image..." + run_command_exit("docker run %s %s ansible --version" % (run_args, image), "Error with ansible check") + run_command_exit("docker run %s %s ansible-playbook --version" % (run_args, image), "Error with ansible-playbook check") if language == "aws": print "> Testing AWS Image..." @@ -212,22 +198,36 @@ def run_build(buildInfo): run_command_exit("docker run %s %s gin --version" % (run_args, image), "Error with gin check") run_command_exit("docker run %s %s modd --version" % (run_args, image), "Error with modd check") + if language == "java": + print "> Testing Java Image..." + run_command_exit("docker run %s %s java -version" % (run_args, image), "Error with java check") + run_command_exit("docker run %s %s mvn --version" % (run_args, image), "Error with mvn check") + run_command_exit("docker run %s %s modd --version" % (run_args, image), "Error with modd check") + + if language == "node": + print "> Testing Node Image..." + run_command_exit("docker run %s %s node --version" % (run_args, image), "Error with node check") + run_command_exit("docker run %s %s npm --version" % (run_args, image), "Error with npm check") + run_command_exit("docker run %s %s sass --version" % (run_args, image), "Error with sass check") + run_command_exit("docker run %s %s modd --version" % (run_args, image), "Error with modd check") + + if language == "php": + print "> Testing PHP Image..." + run_command_exit("docker run %s %s php --version" % (run_args, image), "Error with php check") + run_command_exit("docker run %s %s composer --version" % (run_args, image), "Error with composer check") + run_command_exit("docker run %s %s modd --version" % (run_args, image), "Error with modd check") + run_command_exit("docker run %s %s security-checker --version" % (run_args, image), "Error with security-checker check") + if language == "ruby": print "> Testing Ruby Image..." run_command_exit("docker run %s %s ruby --version" % (run_args, image), "Error with ruby check") run_command_exit("docker run %s %s bundle --version" % (run_args, image), "Error with bundle check") - if language == "ansible": - print "> Testing Ansible Image..." - run_command_exit("docker run %s %s ansible --version" % (run_args, image), "Error with ansible check") - run_command_exit("docker run %s %s ansible-playbook --version" % (run_args, image), "Error with ansible-playbook check") - if language == "sonar": print "> Testing Sonar Scanner Image..." run_command_exit("docker run %s %s java -version" % (run_args, image), "Error with java version") run_command_exit("docker run %s %s sonar-scanner -v" % (run_args, image), "Error with ansible-playbook check") - print "" print "You can now test the image with the following command:\n $ docker run --rm -ti %s" % image