Как создать среду в GitLab CI/CD c динамическим url?
Я пытаюсь создать среду в GitLab CI/CD. Вот пример из документации.
review:
script:
- DYNAMIC_ENVIRONMENT_URL=$(deploy-script) # In script, get the environment URL.
- echo "DYNAMIC_ENVIRONMENT_URL=$DYNAMIC_ENVIRONMENT_URL" >> deploy.env # Add the value to a dotenv file.
artifacts:
reports:
dotenv: deploy.env # Report back dotenv file to rails.
environment:
name: review/$CI_COMMIT_REF_SLUG
url: $DYNAMIC_ENVIRONMENT_URL # and set the variable produced in script to `environment:url`
on_stop: stop_review
stop_review:
script:
- ./teardown-environment
when: manual
environment:
name: review/$CI_COMMIT_REF_SLUG
action: stop
Вот мой код.
RunDocker:
stage: Deploy
variables:
GIT_STRATEGY: none
FullAssemblyName: "develop"
FrontEndVer: "front"
URL: "http://ip"
CONTAINER_NAME: "Name_"
script:
- cd Build
- chmod -R +x *.py
- ./CopyExeToDockerServer.py
- ./CreateConDeb.py
artifacts:
reports:
dotenv: Build/deploy.env
environment:
name: "$CONTAINER_NAME_$PORT"
url: "$URL:$PORT"
auto_stop_in: 2 days
rules:
- if: $CI_PIPELINE_SOURCE != "merge_request_event" && $JobName == "RunDocker"
when: manual
tags:
- Deploy
В скрипте CreateConDeb.py у меня создается файл deploy.env с переменными, которые нужно вставить в название и url среды. Но происходит ошибка при запуске пайплайны. Подскажите пожалуйста в чем может быть проблема?
Ответы (1 шт):
Автор решения: vbystrov
→ Ссылка
Проблема была связана с переменными. Она решилась после указания переменной $PORT в variables. Ранее эта переменная создавалась в файле deploy.env, но сейчас она задается по умолчанию и перезаписывается после создания deploy.env.
RunDocker:
stage: Deploy
variables:
GIT_STRATEGY: none
FullAssemblyName: "develop"
FrontEndVer: "front"
PORT: "0"
script:
- cd Build
- chmod -R +x *.py
- ./CopyExeToDockerServer.py
- ./CreateConDeb.py
artifacts:
reports:
dotenv: Build/deploy.env
environment:
name: "Name"
url: "http://ip:$PORT"
auto_stop_in: 2 days
rules:
- if: $CI_PIPELINE_SOURCE != "merge_request_event" && $JobName == "RunDocker"
when: manual
tags:
- Deploy
Динамический URL теперь работает корректно, однако задать динамическое имя для среды пока не удалось.
Версия GitLab 14.8.2.