从零开始的Devops-Git Server

从零开始的Devops-Git Server

安装docker

安装gitea

mkdir -p /data/docker/gitea
docker run --name gitea -d \ 
--restart=always -v /data/docker/gitea/:/data -p 3000:3000 -p 10022:22 gitea/gitea:latest

安装gogs

docker run -di --name=gogs -p 10022:10022 -p 3000:3000 -v /home/gogs/data:/data gogs/gogs

安装gitlab

GITLAB_HOME = /home/docker/gitlab     # 建立gitlab本地目录
docker run -d --hostname gitlab.example.com\          # 指定容器域名,创建镜像仓库用
-p 8443:443 \                           # 容器443端口映射到主机8443端口(https)
-p 8080:80 \                            # 容器80端口映射到主机8080端口(http)
-p 2222:22 \                            # 容器22端口映射到主机2222端口(ssh)
--name gitlab \                         # 容器名称
--restart always \                      # 容器退出后自动重启
-v $GITLAB_HOME/config:/etc/gitlab \    # 挂载本地目录到容器配置目录
-v $GITLAB_HOME/logs:/var/log/gitlab \  # 挂载本地目录到容器日志目录
-v $GITLAB_HOME/data:/var/opt/gitlab \  # 挂载本地目录到容器数据目录
gitlab/gitlab-ce:latest                 # 使用的镜像:版本

gitlab拆开安装

启动Postgresql容器

docker run --name gitlab-postgresql -d     --env 'DB_NAME=gitlabhq_production'     --env 'DB_USER=gitlab' --env 'DB_PASS=password'     --env 'DB_EXTENSION=pg_trgm'     --volume /srv/docker/gitlab/postgresql:/var/lib/postgresql     sameersbn/postgresql:9.6-2

启动Redis容器

docker run --name gitlab-redis -d     --volume /srv/docker/gitlab/redis:/var/lib/redis     sameersbn/redis:latest

启动GitLab容器

docker run --name gitlab -d     --link gitlab-postgresql:postgresql --link gitlab-redis:redisio     --publish 10022:22 --publish 10080:80     --env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022'     --env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string'     --env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string'     --env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string'     --volume /srv/docker/gitlab/gitlab:/home/git/data     sameersbn/gitlab:10.2.2

使用docker-compose快速构建GitLab

使用docker-compose快速构建GitLab

强烈推荐使用docker-compose方式

强烈推荐使用docker-compose方式

强烈推荐使用docker-compose方式

wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
构建和启动GitLab

使用-f指定配置文件路径

docker-compose -f docker-compose.yml up
控制台会输出启动GitLab的过程,时间可能需要几分钟

如果要在后台以deamon形式运行GitLab,则

docker-compose -f docker-compose.yml up -d
初始化完成后,访问http://localhost:10080,登录root用户并设置密码

注意:以上步骤仅用于本地测试,如果要用于生产环境,需要继续后面的配置

Configuration
打开docker-compose.yml

vim docker-compose.yml
该文件内容如下,部分非重点配置项这里就不展示了

version: '2'

services:
  redis:
    restart: always
    image: sameersbn/redis:latest
    command:
    - --loglevel warning
    volumes:
    - /srv/docker/gitlab/redis:/var/lib/redis:Z

  postgresql:
    restart: always
    image: sameersbn/postgresql:9.6-2
    volumes:
    - /srv/docker/gitlab/postgresql:/var/lib/postgresql:Z
    environment:
    - DB_USER=gitlab
    - DB_PASS=password
    - DB_NAME=gitlabhq_production
    - DB_EXTENSION=pg_trgm

  gitlab:
    restart: always
    image: sameersbn/gitlab:10.2.2
    depends_on:
    - redis
    - postgresql
    ports:
    - "10080:80"
    - "10022:22"
    volumes:
    - /srv/docker/gitlab/gitlab:/home/git/data:Z
    environment:
    - DEBUG=false

    # 数据库配置
    - DB_ADAPTER=postgresql
    - DB_HOST=postgresql
    - DB_PORT=5432
    - DB_USER=gitlab
    - DB_PASS=password
    - DB_NAME=gitlabhq_production

    # Redis配置
    - REDIS_HOST=redis
    - REDIS_PORT=6379

    # 时区配置
    - TZ=Asia/Shanghai
    - GITLAB_TIMEZONE=Shanghai
    
    # GitLab配置
    - GITLAB_HOST=10.0.0.12
    - GITLAB_PORT=10080
    - GITLAB_SSH_PORT=10022
    - GITLAB_RELATIVE_URL_ROOT=
    # CI 所使用的加密密钥
    - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
    # Session 加密密钥
    - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
    # 数据库2FA密钥
    - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string
    
    # ROOT用户密码
    - GITLAB_ROOT_PASSWORD=
    - GITLAB_ROOT_EMAIL=

    - GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
    - GITLAB_NOTIFY_PUSHER=false

    # 邮件配置
    - 
    - 
    - 

    # 每日自动备份
    - GITLAB_BACKUP_SCHEDULE=daily
    - GITLAB_BACKUP_TIME=01:00

    # SMTP邮箱配置
    - SMTP_ENABLED=true
    - SMTP_DOMAIN=smtp.mxhichina.com
    - SMTP_HOST=smtp.mxhichina.com
    - SMTP_PORT=465
    - 
    - SMTP_PASS=password
    - SMTP_STARTTLS=true
    - SMTP_TLS=true
    - SMTP_AUTHENTICATION=login

相关推荐