常用的开发基础设施搭建步骤记录
这里主要在Docker环境下记录搭建一些开发基础设施的方法与步骤, 方便大家参考
- Nexus服务
- Gitlab服务
- Zookeeper集群
- Kafka集群
- 业务API接口管理服务[Eolinker]
- BUG管理平台[zentao禅道]
- Dubbo-admin后台管理服务
Docker 修改源
默认进行docker pull命令下载一些基础镜像时,是从国外源下载的,经常会网络超时失败,这时可以添加配置国内源,以便快速的进行下载;
修改 /etc/docker/daemon.json 文件中的”registry-mirrors”配置项
"registry-mirrors": ["https://registry.docker-cn.com"]
搭建Nexus服务
1 . 镜像下载
docker pull sonatype/nexus3
2 . 使用nexus镜像启动容器服务
docker run -d -p 8081:8081 --name nexus -v /data/nexus:/nexus-data sonatype/nexus3
3 . 访问nexus, 进行服务初始化 , 默认管理用户 [admin:admin123]
http://localhost:8081/
Gitlab服务[这里使用CE版本]
1 . 镜像下载
docker pull gitlab/gitlab-ce
2 . 使用Gitlab镜像启动容器服务
a) 启动
sudo docker run --detach \
--hostname 47.104.109.80 \
--publish 8043:443 --publish 8082:8082 --publish 8022:8022 \
--name gitlab \
--restart always \
--volume /data/gitlab/config:/etc/gitlab:Z \
--volume /data/gitlab/logs:/var/log/gitlab \
--volume /data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
b) 数据都在哪呢
- Local location Container location Usage 描述
- /data/gitlab/config /etc/gitlab For storing the GitLab configuration files 配置文件
- /data/gitlab/data /var/opt/gitlab For storing application data 存储应用数据, 即我们的代码
- /data/gitlab/logs /var/log/gitlab For storing logs 储日志数据, 即gitlab所有日志汇总
c) 查看日志
gitlab-ctl tai
3 . 配置Gitlab的对外访问url
a) 修改gitlab的配置文件/data/config/gitlab.rb, 添加邮箱服务信息
external_url 'http://宿主机IP:8082/
gitlab_rails['gitlab_shell_ssh_port'] = 8022
b) 使配置生效
gitlab-ctl reconfigure
c) 修改容器对SSH服务的监听端口, 修改gitlab容器中 /asserts/sshd_config:
port 8022
4 . 配置Gitlab的邮件服务
a) 修改gitlab的配置文件/data/config/gitlab.rb, 以QQ邮箱为例添加邮箱服务信息
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "xxxxx"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
# If your SMTP server does not like the default 'From: gitlab@localhost' you
# can change the 'From' with this setting.
gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['gitlab_email_reply_to'] = '[email protected]'
b) 使配置生效
gitlab-ctl reconfigure
c) 测试下发送邮件服务
// 进入控制台
gitlab-rails consol
// 发送测试邮件
Notify.test_email('receiver_email', 'email_title', 'email_content').deliver_now
Zookeeper集群
Kafka集群
业务API接口管理服务[Eolinker]
还没有官方镜像, 需要自行在php环境容器中部署
1 . php-fpm镜像下载
docker pull richarvey/nginx-php-fpm
2 .下载eolinker安装包并解压到/data/ software/eolinker
这里写代码片
3 .启动容器
docker run
-e 'WEBROOT=/var/eolinker'
-v /data/eolinker:/var/eolinker
-p 7000:80 -p 9001:9000
--name eolinker -d richarvey/nginx-php-fpm
4 .访问服务
http://localhost:7000/
BUG管理平台[zentao禅道]
1 . 镜像下载
docker pull haha123/zenta
2 . 使用Gitlab镜像启动容器服务
docker run -d
--restart always -p 7002:80
--name zentao -v /data/zentao:/opt/zbox haha123/zentao
3 . 替换数据源, 禅道镜像默认使用内部的mariadb, 可以通过以下步骤切换为使用外部数据源
- 在容器中执行脚本/opt/zbox/auth/adduser.sh增加禅道管理员
- 然后在禅道首页点击数据库管理, 输入上面所加管理员的授权信息
- 使用root/123456连接数据库, 将zentao数据库导出
- 在外部数据库创建zentao数据库, 然后导入上一步导出的SQL
- 修改宿主机中的/data/zentao/app/zentao/config/my.php文件, 将数据库信息更换为外部数据库信息即可;
Dubbo-admin后台管理服务
Dubbo-admin没有官方镜像,需要自行打包war,然后再部署到tomcat8的容器中即可;
1 . 下载源码并打包
git clone https://github.com/apache/incubator-dubbo-ops
cd incubator-dubbo-ops
mvn clean compile package
得到 incubator-dubbo-ops/dubbo-admin/target/dubbo-admin-2.0.0.war
2 . 修改dubbo-config文件 dubbo-admin-2.0.0.war:/WEB-INF/dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
3 . 用上面打包修改好的war构建部署镜像, 以Dockerfile的方式
Dockerfile
# origin parent
FROM dockerbase/tomcat8
# auther
MAINTAINER "[email protected]"
# add war package file
ADD dubbo-admin-2.0.0.war /usr/local/tomcat/webapps/
# start service
CMD ["catalina.sh", "run"]
build
docker build -t hisoka/dubbo-admin:v2 .
4 . 启动容器服务
# 先启动一个zk
docker run -p 2181:2181 --name dubbo-zookeeper --restart always -d zookeeper
# 再启动dubbo-admin服务
docker run -p 8081:8080 --name dubbo-admin --link dubbo-zookeeper:zookeeper -d hisoka/dubbo-admin:v2
5 . 访问服务, 登录口令[root, root]
http://localhost:8081/dubbo-admin-2.0.0/