Использование предварительно созданного Oracle Docker образа в качестве службы для бегуна GitLab CI - PullRequest
0 голосов
/ 24 февраля 2020

В настоящее время я работаю над созданием конвейера интеграционных тестов для нескольких проектов, в которых мы работаем, для работы которых требуется наличие базы данных Oracle. Чтобы сделать это, я прошел процесс создания докернизированной предварительно созданной базы данных Oracle, используя инструкцию, упомянутую в этом документе.

https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance/samples/prebuiltdb

Я успешно построил образ и смог убедиться, что он действительно работает правильно. Я поместил изображение в один из наших пользовательских docker репозиториев, и я также могу успешно извлечь из контекста бегуна.

Моя основная проблема заключается в том, что, когда приложение пытается подключиться к базе данных, оно завершается неудачно с ошибкой отклоненного подключения, как будто база данных не работает (учтите, что я запускаю бегун локально, чтобы проверить это) , У меня такой вопрос:

  1. Какое изображение, которым его выставляет бегун, при использовании произвольного изображения? Например, в документации говорится, что когда я использую mysql:latest, тогда имя предоставляемой службы будет mysql. Это касается и пользовательских изображений? Должен ли я назвать его псевдонимом?

  2. Нужно ли выставлять сети портов / мостов docker, чтобы это работало правильно? Мои соображения по поводу ошибки заставляют меня поверить, что образ, на котором работает приложение, не может должным образом взаимодействовать со службой Oracle.

Для справки мой gitlab-ci.yml для задания вопрос в следующем:

integration_test:
  stage: test
  before_script:
    - echo 127.0.0.1 inttests.myapp.com >> /etc/hosts
  services:
    - <repository>/devops/fts-ora-inttests-db:latest
  script:
    - ./gradlew -x:test integration-test:test
  cache:
    key: "$CI_COMMIT_REF_NAME"
    paths:
      - build
      - .gradle
  only:
    - master
    - develop
    - merge_requests
    - tags
  except:
    - api

Кто-нибудь может помочь в правильной работе?

...