Sign inSign up

dockerjak/gitlab

By dockerjak

•Updated about 10 years ago

gitlab 8.10.5

Artifact
0

121

dockerjak/gitlab repository overview

注:使用外部连接mysql和redis作为数据库和缓存

准备工作: 1、安装mysql数据库,参考dockerjak/mysql

2、安装redis缓存,参考dockerjak/redis

3、执行如下sql语句,创建gitlab账号以及gitlab数据库 CREATE USER 'gitlab'@'%.%.%.%' IDENTIFIED BY 'gitlab123'; CREATE DATABASE IF NOT EXISTS gitlabhq_production DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; GRANT ALL PRIVILEGES ON gitlabhq_production.* TO 'gitlab'@'%.%.%.%';

4、在服务器生成自签名的证书:

步骤1:创建服务器私钥:openssl genrsa -out gitlab.key 2048 步骤2:创建证书签名:openssl req -new -key gitlab.key -out gitlab.csr 步骤3:使用私钥和证书签名来注册证书:openssl x509 -req -days 365 -in gitlab.csr -signkey gitlab.key -out gitlab.crt 生成一个有效期为365天的SSL证书

增强服务器安全性 以加强服务器的安全性。为了实现这一目标,增加更强有力的DHE参数: openssl dhparam -out dhparam.pem 2048

最终会生成四个文件,分别是: gitlab.key gitlab.crt gitlab.csr dhparam.pem

5、安装SSL证书

生成了4个文件,我们需要安装gitlab.key,gitlab.crt,dhparam.pem文件在gitlab服务器。 csr文件是不需要的,但一定要确保安全的备份他。

GitLab默认配置为到/home/git/data/certs查找SSL证书。/home/git/data是gitlab数据存储的路径。

我们只需要创建一个文件夹/mnt/mygitlab/data/certs的证书文件夹,并将证书拷贝到其中,并挂载到gitlab中的/home/git/data目录。 命令如下: mkdir /mnt/mygitlab/data/certs cp gitlab.crt gitlab.key dhparam.pem /mnt/mygitlab/data/certs/

作为一个路径安全的措施,我们将更新gitlab.key为只读权限。 chmod 400 /mnt/mygitlab/data/certs/gitlab.key

挂载设置: -v /mnt/mygitlab/data:/home/git/data (后续使用)

6、邮箱配置 如果是126邮箱,配置如下:后续使用 --env 'SMTP_DOMAIN=pop.126.com' --evn 'SMTP_HOST=smtp.126.com' --env 'SMTP_PORT=465' [说明: 25(非SSL)/465、994(SSL)] --evn 'SMTP_USER=[email protected]⁠' --env 'SMTP_PASS=123456'

开始执行安装创建: 其中jmysql是mysql的容器,myredis是redis容器

docker run --name=gitlab -d --link jmysql:mysql --link myredis:redisio -p 10022:22 -p 10080:80 -p 10443:443 -e 'GITLAB_HOST=192.168.0.109' -e 'GITLAB_PORT=10443' -e 'GITLAB_SSH_PORT=10022' -e 'GITLAB_HTTPS=true' -e 'SSL_SELF_SIGNED=true' -e 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' -e "DB_USER=root" -e "DB_PASS=123456" -e "DB_NAME=gitlabhq_production" -e 'SMTP_DOMAIN=pop.126.com' -e 'SMTP_HOST=smtp.126.com' -e 'SMTP_PORT=465' -e 'SMTP_USER=[email protected]⁠' -e 'SMTP_PASS=123456' -v /mnt/mygitlab/data:/home/git/data -v /mnt/mygitlab/log:/var/log/gitlab docker.io/sameersbn/gitlab:8.10.5

可以使用如下命令查看日志 docker logs gitlab

################################################################################ 8.0以后的版本添加GITLAB_SECRETS_SECRET_KEY_BASE等三个字段,redis使用外部的ip地址

docker run --name=gitlab -d --link mysql:mysql -p 10022:22 -p 10080:80 -p 10443:443 --env 'REDIS_HOST=47.99.110.53' --env 'REDIS_PORT=6379' -e 'REDIS_DB_NUMBER=15' -e 'GITLAB_HOST=47.99.110.53' -e 'GITLAB_PORT=10443' -e 'GITLAB_SSH_HOST=47.99.110.53' -e 'GITLAB_SSH_PORT=10022' -e 'GITLAB_SSH_PORT=10022' -e 'GITLAB_HTTPS=true' -e 'SSL_SELF_SIGNED=true' -e 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' -e "DB_USER=root" -e "DB_PASS=dtbird8890" -e "DB_NAME=gitlabhq_production" -e 'SMTP_DOMAIN=pop.126.com' -e 'SMTP_HOST=smtp.126.com' -e 'SMTP_PORT=465' -e 'SMTP_USER=[email protected]⁠' -e 'SMTP_PASS=you89xiang&612' -e 'GITLAB_SECRETS_OTP_KEY_BASE=hASCt37qwRnDe0ynv8dE2eYtARO2MCgtieO10iKc57wW1W5yfuY1HDgHebnYHsel' -e 'GITLAB_SECRETS_DB_KEY_BASE=lsAZ9FfgqVwVIvH0bF7fdKtiLCKl99b2oHYNor614Y4ghXHiSNz5H3wrDtqYVXZv' -e 'GITLAB_SECRETS_SECRET_KEY_BASE=o6zJOOSREmfu3P7V8evoIW5wna5Vo1I5XNYM3xNxfqj2aRPvT1YNlUdQxQzNyIN7' -v /mnt/gitlab/data:/home/git/data -v /mnt/gitlab/log:/var/log/gitlab sameersbn/gitlab:11.8.3

Tag summary

Content type

Unrecognized

Digest

Size

289.9 MB

Last updated

about 10 years ago

docker pull dockerjak/gitlab:8.10.5