首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

部门sonarque代码扫描测试服务器docker化

部门内部的服务器太多了,打算将对应的测试环境docker化。

转成docker后,以后不管是升级调研还是定制化开发测试都方便,就是事情太多,一直没有抽出身来做,今天处理下并把过程记录下来跟大家分享下。

收集环境生产服务器环境信息

Docker的环境需要同生产服务器相应版本保持一致。

mysql 5.7

jdk8

sonarqube.3

下载对应docker镜像

1.打开Docker公共仓库:https://hub.docker.com/搜索对应程序,如sonarqube。

2.点击“DETAILS”,可以查看DockerPull Command和Full Description

3.点击Tags查看历史版本,找到对应版本,比如我要的是6.3:

4.登入docker-server,搜索sonarqube:

5.下载镜像对应版本:

6.查看下载镜像

7.同样的操作,下载其他的镜像。

注:部分容器可以设置启动参数,可以在docker-hub上找到

启动容器

Mysql启动参数:

https://dev.mysql.com/doc/refman/5.7/en/environment-variables.html

常用的参数:

Sonarqube的启动参考:

调整通过docker-compose管理

注:sonarqube的容器,自带的jdk就是1.8的版本,所以不再单独准备jdk的镜像

查看启动结果:

注意事项:

SONARQUBE_JDBC_URL

一定要配置正确,同时要注意sonarqube对mysql的版本支持。

版本

一定要锁定镜像到最小的版本,因为mysql镜像升级后需要你手动在容器中执行命令去 mysql-upgrade,否则很久之后,你才发现有的数据已经损坏了。

实在想升级,升级步骤如下:

如果是用 docker run 启动的,那么停掉再启动个新的。如果是用 docker-compose 启动的,直接改版本号 pull 镜像重新 up。

在新的版本启动后执行 docker exec -it 你的容器名称或idmysql-upgrade

端口

如果想在外部通过工具访问,需要将3306端口映射到host上的一个端口,不准备外部访问的环境则不必。

时区

添加环境变量 TZ 让mysql用你的默认时区启动。

字符编码

mysql 的镜像默认编码是 latin1,在中国我们一般都用 UTF8 。

一般我们要是在主机上配置 mysql 的话,是去修改配置文件。但使用容器时映射进去一个配置文件是很复杂的。

于是我们有个简单的办法,mysql 接受很多 flag 通过启动时传入。其中就有声明服务器默认编码的。

我们的 command 命令就是给mysql 在启动时加了两个参数。

存储

容器中有文件,需要映射出来。

初始化

mysql 容器在首次启动的时候,必须指定一个root密码才能启动,指定的方式是声明环境变量 MYSQL_ROOT_PASSWORD 。

一旦在指定的数据文件夹发现已经存在库的时候,这个参数就会被忽略掉。

所以我们只需要在第一次启动的时候加上,后面有了数据后都去掉就好了。

导入导出

在容器中运行的 mysql 导入导出数据或结构:

配置信息登记

如果你觉得文章能给你带来帮助,请关注我的公众号并帮忙转发!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180316G0KMGM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券