最快的速度搭建Gitlab服务器

Posted tanghuanyou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最快的速度搭建Gitlab服务器相关的知识,希望对你有一定的参考价值。

最快的速度搭建Gitlab服务器

如果你不知道如何安装和使用docker可以 参考

1. 到Docker的镜像仓库 DockerHub 搜索gitlab


2. 点击查看该镜像的详情

这里介绍了如何搭建和连接数据库的一些东西我们不需要看的太详细。

3. 将页面滚动到 Quick Start

下载docker-compose.yml

wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml

4. 修改配置项

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.5-3
    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:8.13.3
    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_HOST=redis
    - REDIS_PORT=6379

    - TZ=Asia/Kolkata
    - GITLAB_TIMEZONE=Kolkata

    - GITLAB_HTTPS=false
    - SSL_SELF_SIGNED=false

    - GITLAB_HOST=localhost
    - GITLAB_PORT=10080
    - GITLAB_SSH_PORT=10022
    - GITLAB_RELATIVE_URL_ROOT=
    - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
    - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
    - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string

    - GITLAB_ROOT_PASSWORD=
    - GITLAB_ROOT_EMAIL=

    - GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
    - GITLAB_NOTIFY_PUSHER=false

    - GITLAB_EMAIL=notifications@example.com
    - GITLAB_EMAIL_REPLY_TO=noreply@example.com
    - GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com

    - GITLAB_BACKUP_SCHEDULE=daily
    - GITLAB_BACKUP_TIME=01:00

    - SMTP_ENABLED=false
    - SMTP_DOMAIN=www.example.com
    - SMTP_HOST=smtp.gmail.com
    - SMTP_PORT=587
    - SMTP_USER=mailer@example.com
    - SMTP_PASS=password
    - SMTP_STARTTLS=true
    - SMTP_AUTHENTICATION=login

    - IMAP_ENABLED=false
    - IMAP_HOST=imap.gmail.com
    - IMAP_PORT=993
    - IMAP_USER=mailer@example.com
    - IMAP_PASS=password
    - IMAP_SSL=true
    - IMAP_STARTTLS=false

    - OAUTH_ENABLED=false
    - OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=
    - OAUTH_ALLOW_SSO=
    - OAUTH_BLOCK_AUTO_CREATED_USERS=true
    - OAUTH_AUTO_LINK_LDAP_USER=false
    - OAUTH_AUTO_LINK_SAML_USER=false
    - OAUTH_EXTERNAL_PROVIDERS=

    - OAUTH_CAS3_LABEL=cas3
    - OAUTH_CAS3_SERVER=
    - OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false
    - OAUTH_CAS3_LOGIN_URL=/cas/login
    - OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate
    - OAUTH_CAS3_LOGOUT_URL=/cas/logout

    - OAUTH_GOOGLE_API_KEY=
    - OAUTH_GOOGLE_APP_SECRET=
    - OAUTH_GOOGLE_RESTRICT_DOMAIN=

    - OAUTH_FACEBOOK_API_KEY=
    - OAUTH_FACEBOOK_APP_SECRET=

    - OAUTH_TWITTER_API_KEY=
    - OAUTH_TWITTER_APP_SECRET=

    - OAUTH_GITHUB_API_KEY=
    - OAUTH_GITHUB_APP_SECRET=
    - OAUTH_GITHUB_URL=
    - OAUTH_GITHUB_VERIFY_SSL=

    - OAUTH_GITLAB_API_KEY=
    - OAUTH_GITLAB_APP_SECRET=

    - OAUTH_BITBUCKET_API_KEY=
    - OAUTH_BITBUCKET_APP_SECRET=

    - OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL=
    - OAUTH_SAML_IDP_CERT_FINGERPRINT=
    - OAUTH_SAML_IDP_SSO_TARGET_URL=
    - OAUTH_SAML_ISSUER=
    - OAUTH_SAML_LABEL="Our SAML Provider"
    - OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient
    - OAUTH_SAML_GROUPS_ATTRIBUTE=
    - OAUTH_SAML_EXTERNAL_GROUPS=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME=

    - OAUTH_CROWD_SERVER_URL=
    - OAUTH_CROWD_APP_NAME=
    - OAUTH_CROWD_APP_PASSWORD=

    - OAUTH_AUTH0_CLIENT_ID=
    - OAUTH_AUTH0_CLIENT_SECRET=
    - OAUTH_AUTH0_DOMAIN=

    - OAUTH_AZURE_API_KEY=
    - OAUTH_AZURE_API_SECRET=
    - OAUTH_AZURE_TENANT_ID=

需要修改的参数:

参数名称参数的作用
GITLAB_HOSTGitlab服务器的访问地址
GITLAB_PORTGitlab服务器的启动端口
GITLAB_SSH_PORT加密访问端口
GITLAB_ROOT_PASSWORDroot账号的登录密码 [gitlab第一次启动的时候会初始化的到数据库]
GITLAB_ROOT_EMAILroot账号绑定的邮箱 [配置以后我们可以通过邮箱登录]
GITLAB_EMAILGitlab服务器的邮件服务地址
GITLAB_EMAIL_REPLY_TO用户回复邮件的地址
GITLAB_INCOMING_EMAIL_ADDRESS接收邮件的地址
GITLAB_BACKUP_SCHEDULEGitlab的定时备份 可填写的值有:disable[禁用], daily[每天], weekly[每天] or monthly[每月]
GITLAB_BACKUP_TIMEGitlab备份的具体时间 支持的格式 HH:MM
GITLAB_BACKUP_SKIPGitlab备份的时候忽略的文件或者目录
SMTP_ENABLEDGitlab邮件服务模块smtp服务的开关
SMTP_HOSTSMTP服务的地址 163邮箱的SMTP服务地址是:[smtp.163.com]
SMTP_PORTSMTP服务的端口 163邮箱的SSL端口是:465/994, 非SSL端口是:25
SMTP_USER邮箱地址
SMTP_PASS登录密码

一下是我的配置:

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.5-3
    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:8.13.3
    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_HOST=redis
    - REDIS_PORT=6379

    - TZ=Asia/Kolkata
    - GITLAB_TIMEZONE=Kolkata

    - GITLAB_HTTPS=false
    - SSL_SELF_SIGNED=false

    - GITLAB_HOST=localhost
    - GITLAB_PORT=10080
    - GITLAB_SSH_PORT=10022

    - GITLAB_ROOT_PASSWORD=gitlab123456
    - GITLAB_ROOT_EMAIL=tanghuanyou@163.com

    - GITLAB_EMAIL=tanghuanyou@163.com
    - GITLAB_EMAIL_REPLY_TO=tanghuanyou@163.com
    - GITLAB_INCOMING_EMAIL_ADDRESS=tanghuanyou@163.com

    - GITLAB_BACKUP_SCHEDULE=weekly
    - GITLAB_BACKUP_TIME=01:00

    - SMTP_ENABLED=true
    - SMTP_DOMAIN=tanghuanyou@163.com
    - SMTP_HOST=smtp.163.com
    - SMTP_PORT=25
    - SMTP_USER=tanghuanyou@163.com
    - SMTP_PASS=password
    - SMTP_STARTTLS=true
    - SMTP_AUTHENTICATION=login

以上没有配置的项都为默认值

5. 启动gitlab

进入docker-compose.yml 所在的目录

$ docker-compose up -d

如果出现

bash: docker-compose: command not found

说明你的docker-compose没有安装 参考

注意:如果你的本地之前没有下载gitlab的镜像或者你已经删除了本地的镜像那么第一次启动的时间会比较长请耐心的等待 如果出现下载失败可以多尝试几次或者配置docker极速器 配置阿里云Docker 镜像加速器

6. 启动完成测试是否安装成功


因为我的gitlab是安装在虚拟机中的所以我的访问地址是 http://192.168.1.8/ 默认会被重定向到 http://192.168.1.8/users/sign_in 进行登录。

登录成功将看到:

7. 配置 ssh key

如果还未安装git 请先安装git才执行以下操作 参考

1. 查看我当详细信息要修改可以及时修改


2. 配置git的 global user和email

$ git config --global user.name "Administrator"
$ git config --global user.email "tanghuanyou@163.com"

3. 生成 SSH KEY

$ ssh-keygen -t rsa -C "tanghuanyou@163.com"

不需要做任何配置 只需要一路的 回车键[Enter键] 就好

完成以后再用户目录下回生成一个 .ssh的目录我们进入该目录会看到
注意:在MacOSX和Linux系统下这个目录默认是隐藏的
在MacOSX要看到可以:

$ cd ~
$ ls -a
$ cd .ssh
$ open .

在Linux下[这里以Ubuntu 16.04为例]
我们进入用户目录以后 按 Ctrl + h 可以显示隐藏的文件和文件夹

打开.ssh 目录下的 id_rsa.pub 复制所有的内容

回到gitlab

注意:我们可以添加多个 SSH Key 多台电脑都可以使用

8. 创建hello-world




pull项目

修改项目 添加 README.md文件

commit修改并push到gitlab服务器

分享到此结束,欢迎大家指正。

以上是关于最快的速度搭建Gitlab服务器的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab 快速搭建

GitLab搭建

Gitlab Runner实现NetCore自动化持续集成

通过 gitlab(或 git)合并分支的最快方法?

git 服务器搭建及提交代码检查

如何在mac上使用git连接私有的gitlab服务器