You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CircleCI 2.0中配置MariaDB Docker容器并创建指定数据库?

如何在CircleCI 2.0构建流程中配置MariaDB容器并初始化数据库

我直接给你一套可以复用的CircleCI配置方案,完全满足你创建test-db数据库、定义用户和密码的需求,都是官方镜像支持的标准配置,不用额外写复杂脚本:

version: 2
jobs:
  build:
    docker:
      # 替换成你项目实际使用的主构建镜像(比如node、java、python等)
      - image: circleci/python:3.9
      # 添加MariaDB服务容器,可按需指定版本(比如10.6、11.1都可以)
      - image: mariadb:10.6
        environment:
          # 必须设置root用户密码,建议用CircleCI加密变量存储,不要硬编码
          MYSQL_ROOT_PASSWORD: ${ROOT_DB_PASSWORD}
          # 自动创建你需要的test-db数据库
          MYSQL_DATABASE: test-db
          # 定义自定义数据库用户名
          MYSQL_USER: test_user
          # 定义用户密码,同样建议用加密变量
          MYSQL_PASSWORD: ${TEST_USER_PASSWORD}
    steps:
      - checkout
      # 可选:等待MariaDB完全启动(避免构建步骤提前执行导致连接失败)
      - run:
          name: 等待MariaDB服务就绪
          command: |
            sudo apt-get update && sudo apt-get install -y mysql-client
            until mysql -h 127.0.0.1 -u root -p${ROOT_DB_PASSWORD} -e "SELECT 1;"; do
              echo "等待MariaDB启动..."
              sleep 2
            done
      # 这里添加你的常规构建步骤:安装依赖、运行测试等
      # 示例:验证自定义数据库用户连接
      - run:
          name: 验证数据库连接
          command: |
            mysql -h 127.0.0.1 -u test_user -p${TEST_USER_PASSWORD} test-db -e "CREATE TABLE IF NOT EXISTS test_table (id INT);"

关键配置说明:

  • MariaDB官方镜像支持通过环境变量自动完成初始化:
    • MYSQL_DATABASE:容器启动时会自动创建指定名称的数据库(这里就是你要的test-db)
    • MYSQL_USER和MYSQL_PASSWORD:自动创建该用户,并赋予其对MYSQL_DATABASE的全部操作权限
    • MYSQL_ROOT_PASSWORD:必填项,用于root用户的身份验证
  • 敏感信息处理:不要在配置文件里硬编码密码,建议在CircleCI项目控制台的「环境变量」中添加ROOT_DB_PASSWORD和TEST_USER_PASSWORD,配置文件里用${变量名}引用即可
  • 服务就绪等待:数据库容器启动需要几秒时间,添加等待脚本可以避免后续步骤因连接失败报错
  • 镜像版本:可以根据项目需求替换MariaDB的版本号(比如mariadb:10.5、mariadb:latest)

内容的提问来源于stack exchange,提问作者saw303

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:41:35