From bc2c2c19e2c05b631f74c17c86be4edc49c2c2d8 Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen.haas@lakedrops.com> Date: Thu, 4 Aug 2022 12:22:15 +0200 Subject: [PATCH] gitlab-ci-cd/general#3 Add support for docker image prefix to be able to load images from a proxy --- src/Handler.php | 5 ++++ templates/docker-compose.yml.twig | 44 +++++++++++++++---------------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/src/Handler.php b/src/Handler.php index c22f961..927a015 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -32,6 +32,10 @@ class Handler extends BaseHandler { * {@inheritdoc} */ protected function configDefault(): array { + $dockerImageProxy = $this->env->receiveGlobal('docker_image_prefix', '', ''); + if (!empty($dockerImageProxy)) { + $dockerImageProxy = str_replace('//', '/', $dockerImageProxy . '/'); + } $projectname = getenv('COMPOSE_PROJECT_NAME'); if (empty($projectname)) { $projectname = str_replace([' ', '-', '_', '.'], '', basename(getcwd())); @@ -39,6 +43,7 @@ class Handler extends BaseHandler { } return [ + 'docker_image_prefix' => $dockerImageProxy, 'projectname' => $projectname, 'staging' => FALSE, 'basicauth' => [ diff --git a/templates/docker-compose.yml.twig b/templates/docker-compose.yml.twig index 2abf7e4..0de012b 100644 --- a/templates/docker-compose.yml.twig +++ b/templates/docker-compose.yml.twig @@ -10,7 +10,7 @@ networks: services: mariadb: - image: {% if dbserver.type == 'mariadb' %}'wodby/mariadb:{{ dbserver.version }}'{% elseif dbserver.type == 'mysql' %}'mysql/mysql-server:{{ dbserver.version }}'{% else %}''{% endif %} + image: '{{ docker_image_prefix }}{% if dbserver.type == "mariadb" %}wodby/mariadb:{{ dbserver.version }}{% elseif dbserver.type == "mysql" %}mysql/mysql-server:{{ dbserver.version }}{% endif %}' {% if drupal.live|default(0) %} restart: unless-stopped @@ -30,7 +30,7 @@ services: {% if not drupal.live|default(0) %} mariadbtest: - image: {% if dbserver.type == 'mariadb' %}'wodby/mariadb:{{ dbserver.version }}'{% elseif dbserver.type == 'mysql' %}'mysql/mysql-server:{{ dbserver.version }}'{% else %}''{% endif %} + image: '{{ docker_image_prefix }}{% if dbserver.type == "mariadb" %}wodby/mariadb:{{ dbserver.version }}{% elseif dbserver.type == "mysql" %}mysql/mysql-server:{{ dbserver.version }}{% endif %}' environment: MYSQL_ROOT_PASSWORD: password @@ -44,7 +44,7 @@ services: {% endif %} php: - image: 'wodby/drupal-php:{{ php.version }}' + image: '{{ docker_image_prefix }}wodby/drupal-php:{{ php.version }}' {% if drupal.live|default(0) %} restart: unless-stopped {% endif %} @@ -109,7 +109,7 @@ services: {% if crontabs.enable|default(0) %} cron: - image: mcuadros/ofelia:latest + image: '{{ docker_image_prefix }}mcuadros/ofelia:latest' restart: unless-stopped volumes: - /etc/timezone:/etc/timezone:ro @@ -119,7 +119,7 @@ services: {% endif %} {{ webserver.type }}: - image: {% if webserver.type == 'nginx' %}'wodby/drupal-nginx:{{ webserver.version|default("1.21") }}'{% elseif webserver.type == 'apache' %}'wodby/apache:2.4'{% endif %} + image: '{{ docker_image_prefix }}{% if webserver.type == "nginx" %}wodby/drupal-nginx:{{ webserver.version|default("1.21") }}{% elseif webserver.type == "apache" %}wodby/apache:2.4{% endif %}' {% if drupal.live|default(0) %} restart: unless-stopped @@ -183,7 +183,7 @@ services: {% if varnish.enable %} varnish: - image: 'wodby/varnish:6.0' + image: '{{ docker_image_prefix }}wodby/varnish:6.0' {% if drupal.live|default(0) %} restart: unless-stopped {% endif %} @@ -207,7 +207,7 @@ services: redis: - image: 'wodby/redis:{{ redis.version }}' + image: '{{ docker_image_prefix }}wodby/redis:{{ redis.version }}' volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro @@ -219,7 +219,7 @@ services: {% if not drupal.live|default(0) %} {% if dbbrowser.type == 'adminer' %} adminer: - image: 'wodby/adminer:{{ dbbrowser.version|default("4.6") }}' + image: '{{ docker_image_prefix }}wodby/adminer:{{ dbbrowser.version|default("4.6") }}' networks: - traefik-public - default @@ -235,7 +235,7 @@ services: traefik.http.routers.adminer-{{ projectname }}.rule: Host(`adminer-{{ projectdomain }}`) {% elseif dbbrowser.type == 'pma' %} pma: - image: 'phpmyadmin/phpmyadmin:latest' + image: '{{ docker_image_prefix }}phpmyadmin/phpmyadmin:latest' networks: - traefik-public - default @@ -259,7 +259,7 @@ services: {% if solr.enable %} solr: - image: 'wodby/solr:8-{{ solr.version }}' + image: '{{ docker_image_prefix }}wodby/solr:8-{{ solr.version }}' {% if drupal.live|default(0) %} restart: unless-stopped {% endif %} @@ -280,7 +280,7 @@ services: {% if mailhog.enable and (not drupal.live|default(0) or staging) %} mailhog: - image: 'mailhog/mailhog' + image: '{{ docker_image_prefix }}mailhog/mailhog' {% if staging %} restart: unless-stopped {% endif %} @@ -311,7 +311,7 @@ services: {% if node.enable %} nodejs: - image: 'wodby/drupal-node:1.0' + image: '{{ docker_image_prefix }}wodby/drupal-node:1.0' networks: - traefik-public - default @@ -329,7 +329,7 @@ services: command: sh -c 'npm install && npm run start' node: - image: 'node:alpine' + image: '{{ docker_image_prefix }}node:alpine' networks: - traefik-public - default @@ -350,7 +350,7 @@ services: {% if memcached.enable %} memcached: - image: 'wodby/memcached:1.6' + image: '{{ docker_image_prefix }}wodby/memcached:1.6' {% if drupal.live|default(0) %} restart: unless-stopped {% endif %} @@ -361,7 +361,7 @@ services: {% if rsyslog.enable %} rsyslog: - image: 'wodby/rsyslog' + image: '{{ docker_image_prefix }}wodby/rsyslog' {% if drupal.live|default(0) %} restart: unless-stopped {% endif %} @@ -372,7 +372,7 @@ services: {% if athenapdf.enable %} athenapdf: - image: 'arachnysdocker/athenapdf-service' + image: '{{ docker_image_prefix }}arachnysdocker/athenapdf-service' {% if drupal.live|default(0) %} restart: unless-stopped {% endif %} @@ -390,7 +390,7 @@ services: {% if blackfire.enable and not drupal.live|default(0) %} blackfire: - image: 'blackfire/blackfire' + image: '{{ docker_image_prefix }}blackfire/blackfire' environment: BLACKFIRE_SERVER_ID: '{{ blackfire.id }}' BLACKFIRE_SERVER_TOKEN: '{{ blackfire.token }}' @@ -402,7 +402,7 @@ services: webgrind: # add XDEBUG_PROFILE=1 to your request to profile that - image: 'wodby/webgrind:1' + image: '{{ docker_image_prefix }}wodby/webgrind:1' networks: - traefik-public - default @@ -421,7 +421,7 @@ services: {% if selenium.enable and not drupal.live|default(0) %} hub: - image: 'elgalu/selenium' + image: '{{ docker_image_prefix }}elgalu/selenium' volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro @@ -437,7 +437,7 @@ services: - php chrome: - image: 'elgalu/selenium' + image: '{{ docker_image_prefix }}elgalu/selenium' depends_on: - hub volumes: @@ -466,7 +466,7 @@ services: {% if elasticsearch.enable %} elasticsearch: - image: 'wodby/elasticsearch:7' + image: '{{ docker_image_prefix }}wodby/elasticsearch:7' {% if drupal.live|default(0) %} restart: unless-stopped {% endif %} @@ -503,7 +503,7 @@ services: {% if backup.enable|default(0) %} borgmatic: - image: 'b3vis/borgmatic:{{ backup.version }}' + image: '{{ docker_image_prefix }}b3vis/borgmatic:{{ backup.version }}' restart: unless-stopped volumes: - /etc/timezone:/etc/timezone:ro -- GitLab