Docker 版 Gitlab 搭建
-
安装Docker-ce
curl -fsSL https://get.docker.com -o get-docker.sh -
安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose -
使用阿里云镜像为docker加速
首先需要一个阿里云的帐号,然后进入容器镜像服务控制台,下面有一个加速器。我们点击它之后,阿里云会为我们创建一个专属加速器地址。
tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://5g1ay0jx.mirror.aliyuncs.com"] } EOFsystemctl daemon-reload systemctl restart docker -
拉取gitlab docker镜像
docker pull gitlab/gitlab-ce:latest -
编辑docker-compose文件
web: container_name: gitlab image: 'gitlab/gitlab-ce:latest' restart: always hostname: 'gitlab.example.com' environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: # 默认为http,如下设置为启用HTTPS访问 external_url 'https://gitlab.example.com' gitlab_rails['gitlab_shell_ssh_port'] = 5222 # 修改docker内部时区 gitlab_rails['time_zone'] = 'Asia/Shanghai' # Add any other gitlab.rb configuration here, each on its own line ports: - '80:80' - '443:443' - '5222:22' volumes: - '/data/gitlab/etc:/etc/gitlab' - '/data/gitlab/logs:/var/log/gitlab' - '/data/gitlab/data:/var/opt/gitlab'默认的 ssl 证书为 OpenSSL 自签名证书,如需使用正规 CA 颁发的 SSL 证书,需要在
/etc/gitlab目录创建 ssl 路径,并将对应 ssl 证书放到里面mkdir -p /etc/gitlab/ssl chmod 700 /etc/gitlab/ssl cp gitlab.example.com.key gitlab.example.com.crt /etc/gitlab/ssl/ -
启动gitlab
docker-compose up -d -
浏览器访问 [https://gitlab.example.com]
第一次打开需要先修改 root 管理员密码,才可以登录
PS.其他配置
-
默认头像不显示 配置 gravatar 国内镜像站
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' -
开启SMTP
gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = 'gitlab@example.com' gitlab_rails['gitlab_email_display_name'] = 'GitLab' gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.example.com" gitlab_rails['smtp_port'] = 994 gitlab_rails['smtp_user_name'] = "gitlab@example.com" gitlab_rails['smtp_password'] = "xxxxxxxxx" gitlab_rails['smtp_domain'] = "smtp.example.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true -
开启 LDAP
gitlab_rails['ldap_enabled'] = true
# gitlab_rails['prevent_ldap_sign_in'] = false
###! **remember to close this block with 'EOS' below**
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: '192.168.x.x'
port: 389
uid: 'cn'
bind_dn: 'cn=admin,dc=example,dc=com'
password: 'password'
encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
verify_certificates: false
active_directory: false
block_auto_created_users: false
allow_username_or_email_login: true
base: 'dc=example,dc=com'
user_filter: ''
EOS