tldr: < /strong>
У меня есть приложение для пружинного загрузки, которое локально соединяется с базой данных в контейнере Docker и хочу провести некоторые интеграционные тесты в конвейере CI, но не могу подключиться к DB, когда я запускаю свой gitlab Pipeline. Твоид. Это (инициализировать самые основные таблицы) А затем он должен выполнить тесты Maven для проверки приложения. Следуя файлу .gitlab-ci.yml у меня в настоящее время:
variables:
DOCKERFILE_DIR: src/main/resources/docker
stages:
- .pre
- build
- test
Build DB docker-container:
stage: .pre
image: docker:28.0.4
rules:
- changes:
- $DOCKERFILE_DIR/**
services:
- docker:28.0.4-dind
script:
- cd $DOCKERFILE_DIR
- echo $CI_REGISTRY_PASSWORD | docker login $CI_REGISTRY -u $CI_REGISTRY_USER --password-stdin
- docker build -f Dockerfile -t $CI_REGISTRY_IMAGE/cookbook-db .
- docker push $CI_REGISTRY_IMAGE/cookbook-db
mvn compile:
stage: build
image: maven:3.9.9-eclipse-temurin-21
script:
- mvn clean compile
artifacts:
paths:
- target/
mvn test:
stage: test
image: maven:3.9.9-eclipse-temurin-21
services:
- name: $CI_REGISTRY_IMAGE/cookbook-db
alias: cookbook-db
script:
- mvn verify -Dspring.profiles.active=ci
artifacts:
when: always
reports:
junit: target/surefire-reports/*.xml
< /code>
и мое приложение. Прозрачные продукты следующие (2 отдельные файлы, один базовый и один для Ci-профиля для выполнения правильного db) < /p>
Application.properties
>spring.datasource.url=jdbc:postgresql://localhost:5432/cookbook-db
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=org.postgresql.Driver
< /code>
application-ci.properties (для переопределения URL-адреса данных для трубопровода) < /p>
spring.datasource.url=jdbc:postgresql://cookbook-db:5432/cookbook-db
< /code>
Теперь, если трубопровод работает, он не работает на тестовой стадии Wihtin в тестах интеграции (модульные тесты выполняются идеально). Ошибка, которую я получаю, заключается в том, что не может быть сделано никакого соединения с метаданными запроса, и поэтому не может быть установлено никакого соединения с БД, а интеграционные тесты не сбои, потому что контекст приложения не может быть запущен.
Подробнее здесь: https://stackoverflow.com/questions/795 ... e-in-docke
Интеграционные тесты Gitlab CI для проекта Spring Maven с базой данных PSQL в контейнере Docker ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение