В настоящее время я работаю над созданием конвейера интеграционных тестов для нескольких проектов, в которых мы работаем, для работы которых требуется наличие базы данных Oracle. Чтобы сделать это, я прошел процесс создания докернизированной предварительно созданной базы данных Oracle, используя инструкцию, упомянутую в этом документе.
https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance/samples/prebuiltdb
Я успешно построил образ и смог убедиться, что он действительно работает правильно. Я поместил изображение в один из наших пользовательских docker репозиториев, и я также могу успешно извлечь из контекста бегуна.
Моя основная проблема заключается в том, что, когда приложение пытается подключиться к базе данных, оно завершается неудачно с ошибкой отклоненного подключения, как будто база данных не работает (учтите, что я запускаю бегун локально, чтобы проверить это) , У меня такой вопрос:
Какое изображение, которым его выставляет бегун, при использовании произвольного изображения? Например, в документации говорится, что когда я использую mysql:latest
, тогда имя предоставляемой службы будет mysql
. Это касается и пользовательских изображений? Должен ли я назвать его псевдонимом?
Нужно ли выставлять сети портов / мостов 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
Кто-нибудь может помочь в правильной работе?