1.启动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.5-3
2.启动redis消息容器
- docker run --name gitlab-redis -d
- --volume /srv/docker/gitlab/redis:/var/lib/redis
- sameersbn/redis:latest
3.启动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:8.14.0
由于dockerhub的镜像非常慢,我们这里改一下使用灵雀云的镜像(就是改了一下镜像名和版本),虽然版本可能会跟不上最新的,但是速度快多了(实际上也不怎么快,我用了两个小时下载。。。)
- 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
- index.alauda.cn/sameersbn/postgresql
- docker run --name gitlab-redis -d
- --volume /srv/docker/gitlab/redis:/var/lib/redis
- index.alauda.cn/sameersbn/redis:latest
- 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
- index.alauda.cn/sameersbn/gitlab:latest
阿里云上也有这个镜像,不过有些地址是废弃的,需要试一下
- 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
- registry.cn-hangzhou.aliyuncs.com/acs-sample/postgresql-sameersbn
- #docker pull registry.cn-hangzhou.aliyuncs.com/acs-sample/sameersbn-postgresql #这个地址已经废弃但还是可以搜索到
- docker run --name gitlab-redis -d
- --volume /srv/docker/gitlab/redis:/var/lib/redis
- registry.cn-hangzhou.aliyuncs.com/acs-sample/sameersbn-redis:latest
- 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
- registry.cn-hangzhou.aliyuncs.com/acs-sample/gitlab-sameersbn:latest
- #docker pull registry.cn-hangzhou.aliyuncs.com/acs-sample/sameersbn-gitlab #这个地址已经废弃但还是可以搜索到
浏览器访问http://localhost:10080设置root密码,密码不能少于8个字符,最开始可能会出现502的界面,刷新几次就好了。
放几张安装成功到截图
灵雀云上最新的版本是8.8.5,阿里云上最新的版本是810.3,github上最新的是8.14.0
如果重启了电脑,你可以通过下面的方式重启gitlab
- docker restart gitlab-postgresql
- docker restart gitlab-redis
- docker restart gitlab
重启并没有丢失数据,因为--volume挂载卷命令将数据保存到了本地
常用命令
- docker ps #查看容器
- docker ps -a #查看所有容器,包括已经停止的。
- docker ps -l #查看正在运行的容器
- docker rm [容器名或容器ID] #删除单个容器
- #停止、启动、杀死、重启一个容器
- docker stop [容器名或容器ID]
- docker start [容器名或容器ID]
- docker kill [容器名或容器ID]
- docker restart [容器名或容器ID]
域名问题
在启动gitlab时可以通过环境变量GITLAB_HOST指定
- --env 'GITLAB_HOST=gitlab.example.com'