Спотыкаясь на этой проблеме Я понял, что столкнулся с подобной проблемой.
Мне удалось решить эту проблему, создав отдельную папку в корневом проекте с именем flyway
, котораясодержит папку sql
со всеми миграциями и следующие Dockerfile
:
FROM boxfuse/flyway:5.2.4
COPY ./sql ./sql
Возвращаясь к файлу jenkins
Я добавил новый шаг для создания образа докера:
DOCKER_IMAGE_FLYWAY = "flyway"
stages {
stage('build docker images') {
steps {
script {
dockerImage_flyway = docker.build("$DOCKER_REGISTRY/${DOCKER_PROJECT}/${DOCKER_IMAGE_FLYWAY}:${env.BUILD_NUMBER}", "flyway")
}
}
}
и изменил этап миграции, чтобы использовать это изображение
stage('migrate-sql') {
steps {
sh """
docker run --rm \
"$DOCKER_REGISTRY/${DOCKER_PROJECT}/${DOCKER_IMAGE_FLYWAY}:${env.BUILD_NUMBER}" \
-url=jdbc:postgresql://****:5432/**** \
-user=**** \
-password=**** \
-baselineOnMigrate=false \
-schemas=**** \
-connectRetries=60 \
migrate
"""
}
}
Теперь работает как шарм.