ubuntu20.04安装docker并安装gitlab

834 阅读2分钟

ubuntu20.04安装docker并安装gitlab

服务器内存需大于4G

安装vim

如果下载失败需要换源

  1. sudo apt-get update更新软件列表
  2. sudo apt-get install vim 安装vim

安装docker

  1. 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc

完全删除

sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
  1. 更新软件源
sudo apt-get update
  1. 允许apt通过 HTTPS 使用存储库
sudo apt-get install ca-certificates curl gnupg lsb-release
  1. 添加 Docker 的官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  1. 设置存储库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 安装
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  1. 验证
sudo docker run hello-world

若正确,会弹出Hello from Docker!

安装gitlab

  1. 查找gitlab镜像
docker search gitlab
  1. 拉取镜像
docker pull gitlab/gitlab-ce:latest
  1. 启动
docker run \
 -itd  \
 -p 9980:80 \
 -p 9922:22 \
 -v /home/gitlab/etc:/etc/gitlab  \
 -v /home/gitlab/log:/var/log/gitlab \
 -v /home/gitlab/opt:/var/opt/gitlab \
 --restart always \
 --privileged=true \
 --name gitlab \
 gitlab/gitlab-ce
  1. 加入容器内进行修改
docker exec -it gitlab /bin/bash
  1. 修改/etc/gitlab/gitlab.rb
vi /etc/gitlab/gitlab.rb
  1. 添加如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://服务器IP'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '服务器IP'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
  1. 让配置生效
gitlab-ctl reconfigure
  1. 修改http和ssh配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
gitlab:
    host: 服务器IP
    port: 9980 # 这里改为9980
    https: false
  1. 重启容器
gitlab-ctl restart
  1. 退出
exit
  1. 访问 http://服务器IP:9980 ,出现502就刷新下,就能出现页面

设置root账户

  1. 修改密码

# 进入容器内部
docker exec -it gitlab /bin/bash
 
# 进入控制台
gitlab-rails console -e production
 
# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
# 修改密码为root1AQ@
user.password='root1AQ@'
# 保存
user.save!
# 退出
exit

  1. 完成!

2022-8-27 更新 坑点

external_url 是git clone 时的地址,如果我使用的是9980端口,这里要写'http://服务器IP:9980' 文档中没提到的一点是,如果在这里加端口(即不是默认的80端口) 就要修改docker的映射

  1. 将其修改为'http://服务器IP:9980',并gitlab-ctl reconfigure及gitlab-ctl restart及exit
  2. 关闭docker
systemctl stop docker
  1. cd 到docker容器的目录
cd /var/lib/docker/containers
  1. cd 容器ID
  2. vim hostconfig.json

文件中其中有一项是PortBindings,将其中80/tcp改为9980/tcp

  1. vim config.v2.json

将其中80/tcp改为9980/tcp

  1. systemctl start docker

  2. 完成!