Как я могу использовать переменные gitlab CI / CD для изменения в docker -compose.yml - PullRequest
0 голосов
/ 13 февраля 2020

Я пытался понять этот процесс, имея файл docker -compse.yml, который я могу повторно использовать для многих производств с разными хостами, sql паролем и пользователем и так далее.

Я пробовал этот файл fx.


services:
 db_node_domain:
   image: mysql:5.7
   volumes:
     - db_data:/var/lib/mysql
   restart: always
   environment:
     MYSQL_ROOT_PASSWORD: PASSWORD
     MYSQL_DATABASE: wordpress
     MYSQL_USER: wordpress
     MYSQL_PASSWORD: PASSWORD
   container_name: wordpress_db

 wordpress:
   depends_on:
     - db_node_domain
   image: wordpress:latest
   expose:
     - 80:80
   restart: always
   environment:
     VIRTUAL_HOST: sub.domain.example
     WORDPRESS_DB_HOST: db_node_domain:3306
     WORDPRESS_DB_USER: wordpress
     WORDPRESS_DB_PASSWORD: $TEST
   container_name: wordpress
volumes:
   db_data:

networks:
 default:
   external:
     name: nginx-proxy  

И затем я попытался использовать varibales в gitlab для изменения WORDPRESS_DB_PASSWORD разными способами. Это только один пример попытки.

Я также пытался использовать sed -i в .gitlab-ci.yml для изменения пароля, но я хотел знать, может ли кто-нибудь помочь мне с этим.

Thx

1 Ответ

0 голосов
/ 14 февраля 2020

Вам просто нужно заменить жестко закодированные кредиты переменными среды.

Тогда на каждом этапе будут кредиты / настройки.

В Gitlab go ваш проект, затем Настройки> "CI / CD" "> Переменные.

Затем заполните каждую необходимую переменную ENV, они будут присутствовать при каждом запуске

services:
 db_node_domain:
   image: mysql:5.7
   volumes:
     - db_data:/var/lib/mysql
   restart: always
   environment:
     MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
     MYSQL_DATABASE: ${MYSQL_DATABASE}
     MYSQL_USER: ${MYSQL_USER}
     MYSQL_PASSWORD: ${MYSQL_PASSWORD}
   container_name: wordpress_db

 wordpress:
   depends_on:
     - db_node_domain
   image: wordpress:latest
   expose:
     - 80:80
   restart: always
   environment:
     VIRTUAL_HOST: ${VIRTUAL_HOST}
     WORDPRESS_DB_HOST: ${WORDPRESS_DB_HOST}
     WORDPRESS_DB_USER: ${WORDPRESS_DB_USER}
     WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD}
   container_name: wordpress
volumes:
   db_data:

networks:
 default:
   external:
     name: nginx-proxy
...