开发环境搭建-GitLab/SVN搭建

一、使用Docker搭建GitLab

        1:安装

docker run --detach \ # 后台运行-d
        -p 8443:443 \ # 容器443端口映射到主机8443端口用于https
        -p 1080:80 \  # 容器80端口映射到主机1080端口用于http
        -p 1022:22 \  # 容器22端口映射到主机1022端口用于ssh
        --name gitlab \ # 指定容器名称
        --volume /var/lib/docker/volumes/gitlab-data/etc:/etc/gitlab \ # 挂载将本地挂载到容器 本地:容器
        --volume /var/lib/docker/volumes/gitlab-data/log:/var/log/gitlab \
        --volume /var/lib/docker/volumes/gitlab-data/data:/var/opt/gitlab \
        -v /etc/localtime:/etc/localtime \ # 同步主机时区
        --restart=unless-stopped \ # 容器运行中非手动退出时自动重启
        gitlab/gitlab-ce
# docker-compose 方式
version: "3"
services:
  gitlab:
    image: gitlab/gitlab-ce
    container_name: gitlab
    ports:
      - 8443:443
      - 1080:80
      - 1022:22
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./services/gitlab/etc:/etc/gitlab:rw
      - ./services/gitlab/data:/var/opt/gitlab:rw
      - ./logs/gitlab:/var/log/gitlab:rw
    restart: always
    logging:
      driver: "json-file"
      options:
        max-size: "500m"
    networks:
      my_bridge:
        aliases:
          - gitlba
    environment:
      TZ: "Asia/Shanghai"
  # SVN配置 https://blog.csdn.net/yeqinghanwu/article/details/126984838
  # 创建管理账号docker exec -t svn-server htpasswd -cb /etc/subversion/passwd <username> <password>
  # 管理地址ip:3080/svnadmin 仓库ip:3080/svn/项目路径
  svn:
    image: elleflorio/svn-server:latest
    container_name: svn
    ports:
      - 3080:80
      - 3690:3690
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./services/svn/config:/etc/subversion:rw
      - ./services/svn/data:/home/svn:rw
    restart: always
    logging:
      driver: "json-file"
      options:
        max-size: "500m"
    networks:
      my_bridge:
        aliases:
          - svn
    environment:
      TZ: "Asia/Shanghai"

networks:
  my_bridge:
    driver: bridge

        2:创建启动脚本方便以后启动

#!/bin/bash

serverName="gitlab"
imageName="gitlab/gitlab-ce"

function runServer(){
    docker run --detach \
        -p 8443:443 \
        -p 1080:80 \
        -p 1022:22 \
        --name ${serverName} \
        --volume /var/lib/docker/volumes/gitlab-data/etc:/etc/gitlab \
        --volume /var/lib/docker/volumes/gitlab-data/log:/var/log/gitlab \
        --volume /var/lib/docker/volumes/gitlab-data/data:/var/opt/gitlab \
        -v /etc/localtime:/etc/localtime \
        --restart=unless-stopped \
        ${imageName}
}

runningCount=`docker ps -f status=running -f status=restarting | grep -w ${serverName} |wc -l`;
if [[ ${runningCount} > 0 ]];then
    echo "docker restart 重启项目:${serverName}"
    docker restart ${serverName}
    exit 0
fi

serverCount=`docker ps -f status=exited -f status=created | grep -w ${serverName} |wc -l`;
# 判断是否已经启动过,且端口为默认端口
if [[ ${serverCount} > 0 ]];then
    if [[ ${serverCount} > 1 ]]; then
        echo "Error : 查找到多个 ${serverName} 容器,请手动启动"
        exit 1
    else
        echo "docker start 启动项目:${serverName}"
        docker start ${serverName}
    fi
else
    name=${imageName%%:*}
    tag=${imageName##*:}
    # 判断是否有该镜像
    imageCount=`docker images | grep -w ${name} | wc -l`;

    if [[ ${imageCount} > 0 ]];then
        echo "docker run 第一次启动项目: ${imageName}"
        runServer
    else
        echo "Error : 还没有该镜像"
        exit 1
    fi
fi

        3:配置gitlab

            vim /var/lib/docker/volumes/gitlab-data/etc/gitlab.rb
            nginx['listen_port'] = 80 # gitlab nginx 端口,默认80
            external_url 'http://ip:1080' # 配置http协议使用的访问地址
            gitlab_rails['gitlab_ssh_host'] = 'ip' #配置ssh协议使用的访问地址
            gitlab_rails['gitlab_shell_ssh_port'] = 1022 #配置ssh协议使用的访问端口
            修改默认头像地址
            gitlab_rails[gravatar_plain_url]=http://sdn.geekzu.org/avatar/%hash?s=%size&d=identicon
            gitlab_rails[gravatar_ssl_url]=https://sdn.geekzu.org/avatar/%hash?s=%size&d=identicon
            修改完成后重启 docker restart gitlab

        4:管理员密码修改

            第一次访问时会要求修改初始化账号root密码
            如果后期忘记密码也可以修改密码

# 进入docker gitlab
docker exec -it gitlab /bin/bash
# 执行命令
gitlab-rails console  -e  production
user = User.where(id: 1).first
user.password="密码"
user.password_confirmation="密码"
user.save!
quit

        5:配置发送邮件(邮箱需要开启smtp服务)

             vim /var/lib/docker/volumes/gitlab-data/etc/gitlab.rb

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "email@163.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "smtp.163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
gitlab_rails['gitlab_email_from'] = 'email@163.com'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['gitlab_email_reply_to'] = 'email@163.com'
gitlab_rails['gitlab_email_subject_suffix'] = '[GITLAB]'

           docker exec -it gitlab /bin/bash # 进入容器发送测试

           gitlab-rails console
           ActionMailer::Base.delivery_method显示邮件发送协议
           ActionMailer::Base.smtp_settings查看邮件配置
           Notify.test_email('收件人邮箱', '标题', '内容').deliver_now

二、直接在主机上安装

        1:安装相关依赖

              sudo yum install -y curl policycoreutils-python openssh-server

              systemctl enable sshd

              systemctl start sshd

              sudo firewall-cmd --permanent --add-service=http

              systemctl restart firewalld

        2:添加镜像仓库

              curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash

              EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce

              以上方法如果慢可以修改国内源

              ls -l /etc/yum.repos.d/

              mv /etc/yum.repos.d/gitlab_gitlab-ce.repo /etc/yum.repos.d/gitlab_gitlab-ce.repo.bak #备份

              vim /etc/yum.repos.d/gitlab-ce.repo

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck-0
enabled=1

            yum makecache

            yum install gitlab-ce

        3:配置并启动

            gitlab-ctl reconfigure # 首次启动也要用此命令。重新加载配置并启动

            gitlab-ctl start # 启动

            gitlab-ctl stop # 停止

        4:修改配置文件

           gitlab-ctl stop

           vim /etc/gitlab/gitlab.rb 配置项可参考上方docker方式安装

           gitlab-ctl restart postgresql

           gitlab-ctl reconfigure

           gitlab-ctl start

        5:卸载

            gitlab-ctl stop

            rpm -e gitlab-ce

            ps aux | grep gitlab # 查看守护进程

            kill -9

            find / -name gitlab | xargs rm -rf # 删除所有包含gitlab的文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值