gitlab ci mysql_【GitLab】CI集成之mysql service的使用

背景

利用 GitLab 的持续集成功能,在 CI 的 Pipeline 中集成 API 测试,希望测试环境每次都能基于仅有空表的 MySQL 数据库进行测试,于是在 CI 过程中引入 MySQL service。

问题

目前 GitLab service 启动的容器无法做路径映射,于是就无法利用 MySQL image 的启动项的 //docker-entrypoint-initdb.d/ 目录映射来自动加载数据库初始化脚本。查阅官方文档,也没有这方面的支持。

解决方案一

1. 将数据库初始化过程直接重新打包成一个新的镜像,在 GitLab service 中加载新的镜像,Dockerfile 如下

FROM mysql:5.6

ENV MYSQL_DATABASE database_name

ENV MYSQL_ROOT_PASSWORD root

ENV MYSQL_USER user

ENV MYSQL_PASSWORD password

# ./initdb/table-scheme.sql 包含了数据库初始化的脚本

COPY ./initdb/table-scheme.sql /docker-entrypoint-initdb.d/table-scheme.sql

2. 编译镜像

docker build -t my-image/mysql:latest .

3. 将镜像 push 到 Docker Hub 或 私有镜像库

4. 在 .gitlab-ci.yml 增加以下一段来引入使用,剩下的就是在应用代码中直接连接 host 为 mysql 的数据库

apitest:

stage: test

environment:

n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值