zoukankan      html  css  js  c++  java
  • 使用Docker部署Gitlab

    由于公司的代码server已使用Gitosis搭建,但由于用户和权限管理太麻烦。
    如今想在原有server上再搭建Gitlab,使用Gitlab官方方法直接安装。
    会导致与Gitosis冲突,使得Gitosis不可用,
    由于要保持两个服务同一时候存在。所以就想到利用Docker来搭建Gitlab。

    下面以Ubuntu 14.04为例安装Docker和Gitlab

    安装Docker

    在bash中输入命令安装最新的docker

    sudo apt-get purge docker.io
    curl -s https://get.docker.io/ubuntu/ | sudo sh
    sudo apt-get update
    sudo apt-get install lxc-docker

    下载镜像

    下面脚本会下载gitlab,mysql,redis镜像

    docker pull sameersbn/gitlab:latest
    docker pull sameersbn/mysql:latest 
    docker pull sameersbn/redis:latest

    启动redis

    docker run 
      --name=gitlab_redis 
      -tid 
      sameersbn/redis:latest

    启动mysql

    mkdir -p /opt/gitlab/mysql
    docker run 
      --name=gitlab_mysql 
      -tid 
      -e 'DB_NAME=gitlabhq_production' 
      -e 'DB_USER=gitlab' 
      -e 'DB_PASS=password' 
      -v /opt/gitlab/mysql:/var/lib/mysql 
      sameersbn/mysql:latest

    启动gitlab

    mkdir -p /opt/gitlab/data /opt/gitlab/log
    docker run 
      --name='gitlab' 
      -itd 
      --link gitlab_mysql:mysql 
      --link gitlab_redis:redisio 
      -e 'GITLAB_PORT=80' 
      -e 'GITLAB_SSH_PORT=22' 
      -p 10022:22 -p 10080:80 
      -v /var/run/docker.sock:/run/docker.sock 
      -v $(which docker):/bin/docker 
      -v /opt/gitlab/data:/home/git/data 
      -v /opt/gitlab/log:/var/log/gitlab 
      sameersbn/gitlab:latest

    这一步骤会耗时几分钟,由于这一步会做一些初始化操作,我们能够通过docker logs gitlab来查看安装过程。
    我们指定了10022作为ssh的訪问port,10080作为http的訪问port,

    运行完后,略微过1-2分钟后,打开下面地址应该就能够訪问gitlab了
    http://localhost:10080
    假设是在server上搭建。请替换localhost为server地址

    增加开机启动

    增加/etc/rc.local

    echo 'docker start gitlab_redis' >> /etc/rc.local
    echo 'docker start gitlab_mysql' >> /etc/rc.local
    echo 'docker start gitlab' >> /etc/rc.local

    怎样进入docker中的server

    • 假设使用的时1.3.0版本号以上的Docker,使用下面命令:
    docker exec -it gitlab bash
    • 假设是使用更老的版本号,使用下面命令:
    docker run --rm --volume=/usr/local/bin:/target jpetazzo/nsenter
    sudo docker-enter gitlab

    备份和恢复gitlab

    • 备份
    docker stop gitlab && docker rm gitlab
    docker run --name=gitlab -it --rm [OPTIONS] 
      sameersbn/gitlab:latest app:rake gitlab:backup:create
    • 恢复
    docker stop gitlab && docker rm gitlab
    docker run --name=gitlab -it --rm [OPTIONS] 
      sameersbn/gitlab:latest app:rake gitlab:backup:restore

    升级gitlab

    • 又一次pull gitlab镜像
    docker pull sameersbn/gitlab:7.11.4
    • 停止和删除当前的gitlab进程
    docker stop gitlab
    docker rm gitlab
    • 又一次启动gitlab
    docker run 
      --name='gitlab' 
      -itd 
      --link gitlab_mysql:mysql 
      --link gitlab_redis:redisio 
      -e 'GITLAB_PORT=80' 
      -e 'GITLAB_SSH_PORT=22' 
      -p 10022:22 -p 10080:80 
      -v /var/run/docker.sock:/run/docker.sock 
      -v $(which docker):/bin/docker 
      -v /opt/gitlab/data:/home/git/data 
      -v /opt/gitlab/log:/var/log/gitlab 
      sameersbn/gitlab:latest

    本文作者: 阳春面
    本文出处:http://www.aswifter.com/2015/06/14/gitlab-with-docker/
    转载请在开头注明本文出处。

    欢迎关注我的微信公众号,分享Swift开发。Android 开发和互联网内容
    微信号:APP开发人员

  • 相关阅读:
    第四章 JavaScript面向对象
    第二章 JavaScript操作DOM2
    第三章 JavaScript操作DOM
    第二章 JavaScript操作BOM2
    第二章 JavaScript操作BOM
    第一章 JavaScript基础
    java面向对象总结1
    java面向对象总结
    第七章 用表组织数据
    2020.10.22
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7147496.html
Copyright © 2011-2022 走看看