1.下载镜像
docker pull beginor/gitlab-ce:11.0.1-ce.0
2.创建文件夹
通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。
mkdir -p /app/gitlab/etc
mkdir -p /app/gitlab/log
mkdir -p /app/gitlab/data
3.运行
docker run \
--hostname 172.20.10.10\
--detach \
--publish 8443:443 \
--publish 8090:80 \
--publish 8091:22 \
--name gitlab \
--restart unless-stopped \
-v /app/gitlab/etc:/etc/gitlab \
-v /app/gitlab/log:/var/log/gitlab \
-v /app/gitlab/data:/var/opt/gitlab \
beginor/gitlab-ce:11.0.1-ce.0
参数说明:
参数名称 | 参数说明 |
---|---|
detach | 指定容器运行于前台还是后台 |
hostname | 指定主机地址,如果有域名可以指向域名 |
publish | 指定容器暴露的端口,左边的端口代表宿主机的端口,右边的是代表容器的端口 |
name | 给容器起一个名字, |
restart always | 总是重启 |
volume 或者 v | 数据卷,在docker中是最重要的一个知识点. |
4.修改配置
vi /app/gitlab/etc/gitlab.rb
external_url 'http://172.20.10.10' 这个值就是运行docker版的gitlab所在的机器的IP
gitlab_rails['gitlab_ssh_host'] = '172.20.10.10'
gitlab_rails['gitlab_shell_ssh_port'] = 8091
如果8080端口已经被占用了还需要修改
# 假设有Tomcat占用了8080,因此改为8101试一试
### Advanced settings
# unicorn['listen'] = 'localhost'
unicorn['port'] = 8090
vi /app/gitlab/data/gitlab-rails/etc/gitlab.yml
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: 172.20.10.10
port: 80
https: false
5.重新加载配置,重新启动gitlab
docker exec -ti gitlab /bin/bash 先进入到gitlab的容器中
然后
gitlab-ctl reconfigure #花时间比较多
gitlab-ctl restart #改IP重启就可以了
gitlab-ctl status
6.登录
浏览器访问 http://172.20.10.10:8090
这里忘了root密码,需要重置一下root密码
docker exec -ti gitlab /bin/bash 进入gitlab容器里面
cd /opt/gitlab/bin/ 切换到相应的路径下
gitlab-rails console production 打开控制台
u=User.where(id:1).first 查询用户账号信息并赋值给u
u.password=12345678 设置该用户名的密码,密码这里不要使用引号,不然会无法登录成功
u.password_confirmation=12345678 确认密码
u.save! 保存
exit 退出
7.gitlab常用命令
# 重新应用gitlab的配置
gitlab-ctl reconfigure
# 重启gitlab服务
gitlab-ctl restart
# 查看gitlab运行状态
gitlab-ctl status
#停止gitlab服务
gitlab-ctl stop
# 查看gitlab运行日志
gitlab-ctl tail
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sideki
8.创建项目及初次提交
新建项目
配置SSH公钥
先在自己本地要写代码的电脑(我这里是windows)生成一堆RSA公私钥
ssh -keygen -t rsa C '37024760@qq.com'
生成的公私钥在
把公钥id_rsa.pub打开,复制里面的内容粘贴到gitlab的setting---SSH密钥里面
新项目提交
我在本地电脑已经写好了项目的代码了,现在是需要把代码push到gitlab上
git init (在内部会生成.git文件夹)
git remote add origin http://172.20.10.10/root/test-docker.git 或者 git remote add origin ssh://git@172.20.10.10:8091/root/test-docker.git 取决于是用http方式提交还是用ssh方式提交
git add . (添加当前目录下所有的文件到本地git)
git commit -m "Initial commit" (提交到本地git)
git push -u origin master (push到远程git的master分支)
9.git 常用命令
Git 全局设置
git config --global user.name "Administrator"
git config --global user.email "admin@example.com"
创建新版本库
git clone ssh://git@172.20.10.10:8091/root/test-docker.git
cd test-docker
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
已存在的文件夹
cd existing_folder
git init
git remote add origin ssh://git@172.20.10.10:8091/root/test-docker.git
git add .
git commit -m "Initial commit"
git push -u origin master
已存在的 Git 版本库
cd existing_repo
git remote rename origin old-origin
git remote add origin ssh://git@172.20.10.10:8091/root/test-docker.git
git push -u origin --all
git push -u origin --tags