Как создать среду в 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.

→ Ссылка