一.前提准备
1.在服务器/opt/下建立文件夹,用来保存数据
- /opt/gitlab/mysql/
- /opt/gitlab/data/
2.三个docker镜像。
github上开源镜像地址https://github.com/sameersbn/docker-gitlab/tree/v8.0.3
- sameersbn/gitlab:8.0.3
- sameersbn/redis:latest
- sameersbn/mysql:latest
3.准备实现HTTPS需要的证书
创建私有key,生成签名需要的CSR,证书签名,提供DHE参数
- openssl genrsa -out gitlab.key 2048
- openssl req -new -key gitlab.key -out gitlab.csr
- openssl x509 -req -days 3650 -in gitlab.csr -signkey gitlab.key -out gitlab.crt
- openssl dhparam -out dhparam.pem 2048
而后创建文件夹certs,将dhparam.pem,gitlab.crt,gitlab.key放进去。mv文件夹certs到/opt/gitlab/data/下。参考网址:https://github.com/sameersbn/docker-gitlab/tree/v8.0.3#ssl
二.启动镜像
1.启动mysql: 创建用户名:gitlab 密码:xxxxxx。(可以自己修改DB_USER,DB_PASS参数设置)
- docker run –name=mysql -d -e ‘DB_NAME=gitlabhq_production’ -e ‘DB_USER=gitlab’ -e ‘DB_PASS=xxxxxxxx’ -v /opt/gitlab/mysql:/var/lib/mysql sameersbn/mysql:latest
2.启动redis
- docker run –name=redis -d sameersbn/redis:latest
3.启动gitlab:为了实现gitlab发送邮件通知自己申请了一个163邮箱,xxxxx@163.com 密码:xxxxxxx,可以用自己的邮件服务器。
- docker run –name=gitlab -d -p 443:443 -e ‘GITLAB_HTTPS=true’ -e ‘SSL_SELF_SIGNED=true’ -e ‘GITLAB_HOST=git.xxxxxxx.com’ -e ‘GITLAB_PORT=443’ -e ‘GITLAB_EMAIL=xxxxxxx@163.com’ -e ‘GITLAB_EMAIL_REPLY_TO=xxxxxxxx@163.com’ -e ‘SMTP_DOMAIN=163.com’ -e ‘SMTP_HOST=smtp.163.com’ -e ‘SMTP_PORT=25’ -e ‘SMTP_USER=xxxxxxxx@163.com’ -e ‘SMTP_PASS=xxxxxxxxx’ -e ‘NGINX_MAX_UPLOAD_SIZE=256M’ -e ‘GITLAB_SECRETS_DB_KEY_BASE=s9N4pNbKgTJKskJn4rxMfHHXzTNKxprzmJq7pgbLjMMRVTVJM7f3xkFFPdhLpWjK’ -v /opt/gitlab/data:/home/git/data -v /opt/gitlab/mysql:/var/lib/mysql –link mysql:mysql –link redis:redisio sameersbn/gitlab:8.0.3
注:
1.GITLAB_HOST=git.xxxxxxx.com,使用域名访问要修改hosts文件。
2.GITLAB_SECRETS_DB_KEY_BASE参数使用pwgen -Bsv1 64创建一个64位随机字符串,没有默认值必须给出。
三.访gitlab
- https://ip地址
- 默认用户名:root
- 默认密码:5iveL!fe
四.开机自启
在/etc/rc.local,添加命令
- service start docker
- docker start redis mysql gitlab
Questions:
- 1.HTTPS单向认证需要使用openssl生成服务器端证书
- 2.docker开机自启时,首先确保docker服务已启。/etc/rc.local中加上:
- service start docker
- docker start redis mysql gitlab