设为首页 收藏本站
查看: 3343|回复: 0

[经验分享] gerrit 基于docker实现的部署,包括nginx ssl、mysql

[复制链接]

尚未签到

发表于 2018-5-29 10:44:49 | 显示全部楼层 |阅读模式
gerrit 基于docker容器的部署:
命令行启动
1.  启动mysql容器
sudo docker run --name mysql -d -v /gerrit_mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123qwezxc -e MYSQL_DATABASE=reviewdb -e MYSQL_USER=gerrit2 -e MYSQL_PASSWORD=gerrit mysql

2. 启动gerrit容器
sudo docker run --name gerrit2 --link mysql:db -d -p 8080:8080 -p 29418:29418 -v /gerrit_volume:/var/gerrit/review_site -e DATABASE_TYPE=mysql -e WEBURL=https://9.186.89.219 -e DB_ENV_MYSQL_DB=reviewdb  -e HTTPD_LISTENURL=proxy-https://*:8080/ openfrontier/gerrit
3. 启动nginx_ssl_gerrit,此镜像是根据官方nginx镜像生成,对应的Dockerfile配置如下:
a. mkdir nginx_ssl_gerrit && cd nginx_ssl_gerrit
b. cat > Dockerfile <<EOF
FROM nginx
COPY ./nginx/ /etc/nginx/conf.d/
   EOF
c. nignx的目录结构如下:
nginx_ssl_gerrit/
├── Dockerfile
└── nginx
    ├── default.conf  #ssl的相关配置
    ├── gerrit.crt    #自签证书公钥
    └── gerrit.key   #自签证书私钥
d. default.conf 配置如下:
cat > default.conf <<EOF
server {
    listen 443;
    server_name 127.0.0.1;
    ssl  on;
    ssl_certificate      conf.d/gerrit.crt;
    ssl_certificate_key  conf.d/gerrit.key;
    location / {
        proxy_pass              http://gerrit:8080;
        proxy_set_header        X-Forwarded-For $remote_addr;
        proxy_set_header        Host $host;
    }
    location /login/ {
        proxy_pass              http://gerrit:8080;
        proxy_set_header        X-Forwarded-For $remote_addr;
        proxy_set_header        Host $host;
    }
}
EOF
e. 自签公私钥证书的生成
openssl req -x509 -days 3650 -subj "/CN=9.186.89.219/" -nodes -newkey rsa:4096 -sha256 -keyout gerrit.key -out gerrit.crt

总结:
安装过程中可能遇到的问题:
1. Missing project All-Projects
解决方法:
进入msyql容器,先删除reviewdb数据库,然后重新创建reviewdb数据库,最后重启启动gerrit容器即可
2. 由于采用的认证方式是OPEID,可能遇到第一个账户登录后,没有管理员权限(gerrit默认第一个登录的用户为管理员账户)
解决方法:
a. 删除reviewdb,然后重新创建;
b. 删除gerrit启动时生成的所有文件,即/gerrit_volume:/var/gerrit/review_site中的所有文件
3. 使用 ssh -p 29418 docker_lab@localhost gerrit gsql, 报错:fatal: docker_lab does not have "Access Database" capability.
解决方法:
http://jingyan.baidu.com/article/046a7b3ea8122ef9c27fa919.html
为了方便管理,可以使用docker-compose来管理多个容器:
1. docker-compose.yml配置文件如下:
a. mkdir gerrit-deploy && cd gerrit-deploy
cat > docker-compose.yml <<EOF
nginx:
    image: nginx_ssl_gerrit
    restart: always
    links:
        - gerrit2:gerrit
    ports:
        - 443:443
gerrit2:
    image: openfrontier/gerrit
    restart: always
    links:
        - mysql:db
    ports:
        - 8080:8080
        - 29418:29418
    volumes:
        - /gerrit_volume:/var/gerrit/review_site
    environment:
        - DATABASE_TYPE=mysql
        - DB_ENV_MYSQL_DB=reviewdb
        - WEBURL=https://9.186.89.219
        - HTTPD_LISTENURL=proxy-https://*:8080/
mysql:
    image: mysql
    restart: always
    volumes:
        - /gerrit_mysql_data:/var/lib/mysql
    environment:
        - MYSQL_ROOT_PASSWORD=123qwezxc
        - MYSQL_DATABASE=reviewdb
        - MYSQL_USER=gerrit2
        - MYSQL_PASSWORD=gerrit
EOF
2. 启动容器:
sudo docker-compose up -d
3. 查看是否启动:
sudo docker-compose ps  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-482511-1-1.html 上篇帖子: 专注docker安全:Security Scanning 下篇帖子: Docker exec与Docker attach
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表