gerrit 基於docker實現的部署,包括nginx ssl、mysql

來源:互聯網
上載者:User

標籤:gerrit openid docker mysql nginx

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 mysql2. 啟動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/gerrit3. 啟動nginx_ssl_gerrit,此鏡像是根據官方nginx鏡像產生,對應的Dockerfile配置如下:a. mkdir nginx_ssl_gerrit && cd nginx_ssl_gerritb. cat > Dockerfile <<EOFFROM nginxCOPY ./nginx/ /etc/nginx/conf.d/   EOFc. nignx的目錄結構如下:nginx_ssl_gerrit/├── Dockerfile└── nginx    ├── default.conf  #ssl的相關配置    ├── gerrit.crt    #自簽認證公開金鑰    └── gerrit.key   #自簽認證私密金鑰d. default.conf 配置如下:cat > default.conf <<EOFserver {    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;    }}EOFe. 自簽公私密金鑰認證的產生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-deploycat > docker-compose.yml <<EOFnginx:    image: nginx_ssl_gerrit    restart: always    links:         - gerrit2:gerrit    ports:        - 443:443gerrit2:    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=gerritEOF2. 啟動容器:sudo docker-compose up -d 3. 查看是否啟動:sudo docker-compose ps


本文出自 “一切皆有可能” 部落格,請務必保留此出處http://noican.blog.51cto.com/4081966/1775417

gerrit 基於docker實現的部署,包括nginx ssl、mysql

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.