gerrit 基于docker实现的部署,包括nginx ssl、mysql

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 [email protected] 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
时间: 2024-10-07 23:49:29

gerrit 基于docker实现的部署,包括nginx ssl、mysql的相关文章

基于docker、kubernetes部署openstack到atomic系统上

声明: 本人阅读笔记,翻译类文章仅作意译.如有不对之处,请指出. 需要更本源的理解,请自行阅读英文. 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 新浪微博:寻觅神迹 内容系本人学习.研究和总结,如有雷同,实属荣幸! 基于docker.kubernetes部署openstack到atomic系统上 openstack的服务定义,是不是看起来很简洁? openstack的实际组件构成,是不是看起来很复杂? 所有的openstack

使用Docker搭建起PHP、Nginx、MySQL环境

在申请的一台免费 三 丰 云 主 机 上使用Docker搭建起PHP.Nginx.MySQL环境 docker下载 git clone https://gitee.com/xupaul/docker_fast_init配置说明 docker-compose.yml 文件调整 这个文件有大量的文件挂载配置,这块就需要调整,拿一个举例. version: "2"services:http:image: nginx:1.12.1-alpinevolumes: -/config/nginx/n

CentOS源码安装搭建LNMP全过程(包括nginx,mysql,php,svn)

服务器环境为:CentOS6.5 64位 目标:搭建LNMP(Linux + Nginx + MySQL + PHP +SVN),其中svn是用来代替ftp,方便开发中调试同步代码 相关目录:所有软件都安装到/www/目录下,在www目录下新建web文件夹作为网站的根路径,www目录下新建wwwsvn作为svn的仓库地址./www/software用来放nginx,mysql,php的安装包和源码.nginx运行分组和账户www:www 一,安装前的准备 yum -y install ntp m

CentOS源码安装搭建LNMP全过程(包括nginx,mysql,php,svn)【转】

转自:http://blog.csdn.net/yanzi1225627/article/details/49123659 服务器环境为:CentOS6.5 64位 目标:搭建LNMP(Linux + Nginx + MySQL + PHP +SVN),其中svn是用来代替ftp,方便开发中调试同步代码 相关目录:所有软件都安装到/www/目录下,在www目录下新建web文件夹作为网站的根路径,www目录下新建wwwsvn作为svn的仓库地址./www/software用来放nginx,mysq

Ubuntu系统下基于docker部署Jenkins环境

本文是在ubuntu环境下安装jenkins,jenkins运行在docker容器中, 至于docker如何安装,请参考https://www.cnblogs.com/xingyunqiu/p/11584066.html Jenkins官网文档:https://jenkins.io/zh/doc/ 使用命令从镜像仓库拉取指定文件,我这里用的是jenkins:lts这个版本:如果需要其他版本 注意,由于我是基于docker容器化部署Jenkins,所以不需要安装jdk环境 sudo docker

Linux--YUM 安装 nginx php mysql

Linux--YUM 安装 nginx php mysql (2011-11-13 11:27:14) 转载▼ 标签: 杂谈 分类: Linux 1.先新建一个 repo # vi /etc/yum.repos.d/centos.21andy.com.repo 放入如下内容 [21Andy.com] name=21Andy.com Packages for Enterprise Linux 5 - $basearch baseurl=http://www.21andy.com/centos/5/

1分钟完美安装最新CentOS+Nginx+PHP-FPM+MySQL

PHP 5.3.1 MySQL 5.0.89 Nginx 0.8.33 或 0.7.65 (可选) 现在,我们可以快速全自动搞定 CentOS + Nginx + PHP-FPM + MySQL 的安装了 这个可比网上流传的什么一键安装包要好得多,强烈推荐此法安装,适合所有菜鸟和高手 我服务器上全用的源代码编译安装,也好不到哪去,还很费劲 我这个装完已经包含PHP的一些常用扩展, PDO,eaccelerator,memcache,tidy等等 先新建一个 repo # vi /etc/yum.

docker安装步骤及基于docker容器部署web应用LNMP服务器环境

docker的介绍 docker的定义: 1.docker的三个概念:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器Docker 镜像 - Docker images: Docker 镜像是 Docker 容器运行时的只读模板Docker 仓库 - Docker registeries: Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库(Docker Hub)Docker 容器 - Docker containers:每一个 Docke

基于docker 如何部署surging分布式微服务引擎

1.前言 转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微服务引擎,再把业务进行剥离, 通过配置路径就能驱动加载业务模块,这样的细粒度设计,能更加灵活从业务中针对于对象加以细分,能更加灵活的拆分聚合服务.而这篇文章我们来谈谈基于docker 如何部署 surging源码下载 2.概述 容器,就是用来存放镜像的器皿,而镜像是构建成的一个轻量的.独立的.可执行