如何在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
相关产品推荐
相关产品推荐

