您现在的位置是:首页 >技术杂谈 >ubuntu基于Docker搭建Gitlab服务器网站首页技术杂谈

ubuntu基于Docker搭建Gitlab服务器

Tristan Tsai 2024-06-14 17:20:20
简介ubuntu基于Docker搭建Gitlab服务器

一、安装docker

1,先卸载掉旧版本

$ sudo apt-get remove docker docker-engine docker.io containerd runc

2,更新apt包

$ sudo apt-get update

3,安装软件包以允许apt通过https使用存储库

	$ sudo apt-get install 
	    apt-transport-https 
	    ca-certificates 
	    curl 
	    gnupg-agent 
	    software-properties-common

4,添加官方GPG秘钥

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
	$ sudo apt-key fingerprint 0EBFCD88

5,设置稳定存储库

$ sudo add-apt-repository 
	   "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
	   $(lsb_release -cs) 
	   stable"

6,更新apt包索引

$ sudo apt-get update

7,推荐直接安装最新版本的docker

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

8,测试运行hello world镜像

$ sudo docker run hello-world

9、其他Docker操作

卸载docker引擎

$ sudo apt-get purge docker-ce

docker虽然卸载,但是镜像还会残留,卸载镜像命令

$ sudo rm -rf /var/lib/docker

docker的常用命令

启动docker

systemctl start docker

停止docker:

systemctl stop docker

重启docker:

systemctl restart docker

开机启动:

systemctl enable docker

查看docker概要信息

docker info

查看docker帮助文档

docker --help

列出容器

docker ps

二、docker部署Gitlab

1,创建容器外挂目录

创建三个目录分别存放这些数据,便于GitLab的维护和迁移。即时是GitLab被我们玩坏了,只要这三个文件还存在,就可以很简单的重建

sudo mkdir -p /gitlab/data
sudo mkdir -p /gitlab/logs
sudo mkdir -p /gitlab/config

2,启动gitlab容器

sudo docker run --detach 
    --publish 8443:443 --publish 8000:80 --publish 2222:22 
    --name gitlab 
    --restart always 
    --volume /gitlab/config:/etc/gitlab 
    --volume /gitlab/logs:/var/log/gitlab 
    --volume /gitlab/data:/var/opt/gitlab 
    -log-driver=none 
    beginor/gitlab-ce:11.1.4-ce.0

参数说明

  • –detach 设置容器后台运行
  • –publish 暴露 https、http和ssh端口,关于端口下文会细说
  • –name 容器名称
  • –restart always 每次启动容器就重启GitLab
  • –volume 设置GitLab数据挂载点

第一次启动容器会很慢,需要三分钟左右。可以随时通过docker ps 查看启动进度。当STATUS由starting变为health时,就说明启动成功了。

另外,其中的8000:80就是docker内部80对外部8000的映射,外部访问时就用8000端口,内部实际映射为80。
3,配置GitLab
现在就可以通过地址:http://IP:8000访问GitLab,但是为了正常使用,我们还需要配置GitLab。
我们需要修改三个参数:

external_url
ssh 端口
nginx监听端口
GitLab的配置文件在我们外挂的磁盘下/gitlab/config/gitlab.rb
修改external_url

sudo vim /gitlab/config/gitlab.rb
# 可以通过`/`搜索需要修改的参数
external_url 'http://IP:8000'   # IP填写GitLab部署的服务器的IP

修改ssh端口

如果不修改ssh的端口,clone和提交代码时一直需要输入密码。
因为通过ssh链接gitlab时默认访问的是22端口,但是使用docker部署,22端口在宿主机一直被占用,所以映射为2222端口,需要修改gitlab配置文件

### GitLab Shell settings for GitLab
gitlab_rails['gitlab_shell_ssh_port'] = 2222
# gitlab_rails['gitlab_shell_git_timeout'] = 800

修改nginx监听的端口

nginx['listen_port'] = 80

这点比较重要,否则有可能造成ssh链接异常

现在配置已经完成,重启容器即可使用

docker restart gitlab

访问
GitLab的访问地址是:http://IP:8000/。第一次访问会让用户修改密码,修改成功后就可以通过账号(root)和该密码登录GitLab。
当然为了正常使用GitLab,添加SSH公钥是必须的。GitLab的使用方式和GitHub基本一致。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。