gpt4 book ai didi

docker - 使用Docker和Jenkins自动进行Flyway迁移

转载 作者:行者123 更新时间:2023-12-02 20:45:47 29 4
gpt4 key购买 nike

我想为我们的MariaDB数据库自动化Flyway迁移。为了进行测试,我在仅运行docker-compose.yml命令的info中添加了以下服务。

  flyway:
image: boxfuse/flyway:5.2.4
command: -url=jdbc:mariadb://mariadb_service -schemas=$${MYSQL_DATABASE} -table=schema_version -connectRetries=60 info
volumes:
- ./db/migration:/flyway/sql
depends_on:
- mariadb_service

这似乎可行,即我可以看到 info的输出。

现在,我想将这一想法更进一步,并将其集成到我们的Jenkins构建管道中。这就是我卡住的地方。
  • 如果我在docker-compose.yml中使用上面的Jenkinsfile部署了Docker堆栈,那么在迁移期间相应的阶段会因错误而失败吗?说来, Jenkins 会注意到这个错误吗?
  • 如果不是这样,如何将Flyway迁移集成到我的Jenkins管道中?我发现有一个Flyway Runner插件,但没有看到它是否可以连接到Jenkinsfile
  • 部署的Docker堆栈中的数据库

    最佳答案

    您可以使用Jenkins built-in support for Docker。然后您的管道脚本可能包含阶段

    stage('Apply DB changes') {

    agent {
    docker {
    image 'boxfuse/flyway:5.2.4'
    args '-v ./db/migration:/flyway/sql --entrypoint=\'\''
    }
    }

    steps {
    sh "/flyway/flyway -url=jdbc:mariadb://mariadb_service -schemas=${MYSQL_DATABASE} -table=schema_version -connectRetries=60 info"
    }

    }

    这样 steps将在Jenkins agent boxfuse/flyway 镜像创建的临时Docker容器中执行。如果命令失败,那么整个阶段也会失败。

    关于docker - 使用Docker和Jenkins自动进行Flyway迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54668247/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com