From b9fc1f3ca69624e640ceac5eca2aa135617c01c0 Mon Sep 17 00:00:00 2001 From: Tobias Munk Date: Mon, 5 Feb 2018 11:57:06 +0100 Subject: [PATCH] Build image in dockerized tests with BUILD_ARG (#15559) * added build argument for Yii 2.0 PHP base image version - streamlined build - dropped network config for CI - updated local test script * added default for PHP (7.2) image on GitLab CI * use PHP 7.1 as a default on GitLab CI, see https://github.com/yiisoft/yii2/issues/15512 --- .gitlab-ci.yml | 1 + Dockerfile | 3 ++- tests/.env-dist | 1 + tests/docker-compose.yml | 13 ++++--------- tests/test-local.sh | 14 ++------------ 5 files changed, 10 insertions(+), 22 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 76a6e0b..a0f20c4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,6 +4,7 @@ services: - docker:dind variables: + DOCKER_YII2_PHP_IMAGE: yiisoftware/yii2-php:7.1-apache DOCKER_MYSQL_IMAGE: percona:5.7 DOCKER_POSTGRES_IMAGE: postgres:9.3 diff --git a/Dockerfile b/Dockerfile index 88761db..77ffdfd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ -FROM yiisoftware/yii2-php:7.1-apache +ARG DOCKER_YII2_PHP_IMAGE +FROM ${DOCKER_YII2_PHP_IMAGE} # Project source-code WORKDIR /project diff --git a/tests/.env-dist b/tests/.env-dist index 5ab09d6..ea4dfaa 100644 --- a/tests/.env-dist +++ b/tests/.env-dist @@ -4,5 +4,6 @@ COMPOSE_FILE=docker-compose.yml:docker-compose.mysql.yml:docker-compose.pgsql.yml:docker-compose.caching.yml # Image versions +DOCKER_YII2_PHP_IMAGE=yiisoftware/yii2-php:7.2-apache DOCKER_MYSQL_IMAGE=percona:5.7 DOCKER_POSTGRES_IMAGE=postgres diff --git a/tests/docker-compose.yml b/tests/docker-compose.yml index 3a11c66..1e22318 100644 --- a/tests/docker-compose.yml +++ b/tests/docker-compose.yml @@ -2,7 +2,10 @@ version: '2' services: php: - build: .. + build: + context: .. + args: + DOCKER_YII2_PHP_IMAGE: ${DOCKER_YII2_PHP_IMAGE} working_dir: /project volumes: - ../tests/data/config-docker.php:/project/tests/data/config.php @@ -14,11 +17,3 @@ services: # - /project/tests/runtime environment: - TEST_RUNTIME_PATH=/tmp/runtime - -networks: - default: - ipam: - driver: default - config: - # prevent overlapping/duplicated networks, since docker assigns /16 subnets by default ranging from 10.x over 172.x to 192.168.x - - subnet: 10.100.1${TUPLE_C}.1/24 \ No newline at end of file diff --git a/tests/test-local.sh b/tests/test-local.sh index e4465c2..9b286fb 100644 --- a/tests/test-local.sh +++ b/tests/test-local.sh @@ -9,18 +9,13 @@ export CI_PIPELINE_ID=${1} case $1 in 'default') export ISOLATION=buildpipeline${CI_PIPELINE_ID} - export COMPOSE_PROJECT_NAME=${ISOLATION} - export TUPLE_C=$(expr ${CI_BUILD_ID} % 255) - echo ${TUPLE_C} + export COMPOSE_PROJECT_NAME=${ISOLATION}default docker-compose up -d docker-compose run --rm php vendor/bin/phpunit -v --exclude caching,db docker-compose down -v ;; 'caching') export ISOLATION=buildpipeline${CI_PIPELINE_ID} - export COMPOSE_PROJECT_NAME=${ISOLATION} - export TUPLE_C=$(expr ${CI_BUILD_ID} % 255) - echo ${TUPLE_C} export COMPOSE_PROJECT_NAME=${ISOLATION}caching docker-compose up -d docker-compose run --rm php bash -c "while ! curl mysql:3306; do ((c++)) && ((c==30)) && break; sleep 2; done" @@ -29,9 +24,7 @@ case $1 in ;; 'mssql') export ISOLATION=buildpipeline${CI_PIPELINE_ID} - export COMPOSE_PROJECT_NAME=${ISOLATION} - export TUPLE_C=$(expr ${CI_BUILD_ID} % 255) - echo ${TUPLE_C} + export COMPOSE_PROJECT_NAME=${ISOLATION}mssql cd mssql docker-compose up --build -d docker-compose run --rm php bash -c 'while [ true ]; do curl mssql:1433; if [ $? == 52 ]; then break; fi; ((c++)) && ((c==15)) && break; sleep 5; done' @@ -48,9 +41,6 @@ case $1 in ;; 'pgsql') export ISOLATION=buildpipeline${CI_PIPELINE_ID} - export COMPOSE_PROJECT_NAME=${ISOLATION} - export TUPLE_C=$(expr ${CI_BUILD_ID} % 255) - echo ${TUPLE_C} export COMPOSE_PROJECT_NAME=${ISOLATION}pgsql docker-compose up -d docker-compose run --rm php bash -c 'while [ true ]; do curl postgres:5432; if [ $? == 52 ]; then break; fi; ((c++)) && ((c==25)) && break; sleep 2; done'