ECS服务器使用Docker运行gitlab详细步骤
环境
-
阿里云服务器一台 Centos 7.XX 1核两G
-
已安装好docker环境(这里不详述,我之前的文章有Docker入门全教程,看安装部分即可)
安装gitlab
# 搜索gitlab,在这里我选择是使用人数最多的 gitlab/gitlab-ce
[root@pihao ~]# docker search gitlab --filter=STARS=100
NAME DESCRIPTION STARS
gitlab/gitlab-ce GitLab Community Edition docker image based … 2924
sameersbn/gitlab Dockerfile to build a GitLab image for the D… 1152
gitlab/gitlab-runner GitLab CI Multi Runner used to fetch and run… 613
gitlab/gitlab-ee GitLab Enterprise Edition docker image based… 189
# 拉取 gitlab/gitlab-ce 镜像
[root@pihao ~]# docker pull gitlab/gitlab-ce
# 拉取成功
[root@pihao ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gitlab/gitlab-ce latest 100b8f44f2af 2 days ago 1.81GB
运行gitlab
# -p 端口映射(80端口是gitlab内部绑定的端口)
# -v 数据文件挂载
# --name 取别名
[root@pihao ~]# docker run -d -p 8443:443 -p 8090:80 --name gitlab -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
# 查看gitlab容器是否启动成功
[root@pihao ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
95d66d692a4f gitlab/gitlab-ce "/assets/wrapper" 51 minutes ago Up 17 seconds (health: starting) 22/tcp, 0.0.0.0:8090->80/tcp, 0.0.0.0:8443->443/tcp gitlab
[root@pihao ~]# ok
修改配置文件
- 修改 /home/gitlab/config/gitlab.rb 的配置
[root@pihao /]# vim /home/gitlab/config/gitlab.rb
[root@pihao /]# 找到 external_url 这个属性配置,将它设置为你的宿主机的地址
[root@pihao /]# 如 external_url 'http://112.74.167.52'
- 修改 /home/gitlab/data/gitlab-rails/etc/gitlab.yml的配置
# 只需要设置以下的 host以及port
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: 112.74.167.52 # 宿主机的ip地址
port: 8090 # 启动容器时映射的80端口
https: false
- OK,设置完毕,这个时候直接访问 gitlab的url即可 http://112.74.167.52:8090 可能第一次启动的时候会报502的错误。莫慌!!!这是因为gitlab刚刚启动,很多功能还没启动起来,过个1分钟再次访问即可!
OK,完美运行。
但是如果你是阿里云服务器或者腾讯云,而且还是个2G内存的,这个时候你可能快崩溃了,因为你发现启动gitlab之后服务器是在是太卡了,这个时候怎么整呢?
我也是遇到了好多坑,网上浏览了很多博客,发现可以用设置分区来解决。而阿里云、腾讯云服务器默认是没有设置分区的。
# 先暂停一下容器,来设置分区
[root@pihao /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
95d66d692a4f gitlab/gitlab-ce "/assets/wrapper" About an hour ago Up 10
[root@pihao /]# docker stop 95d66d692a4f
- 1、通过一下命令来查看swap分区情况
[root@pihao /]# cat /proc/swaps
Filename Type Size Used Priority
[root@pihao /]# 发现没有分区
- 2、创建swap分区(这里需要等待几秒钟)
# 说明:创建swap大小为 bs * count=4294971392(4G),/data目录若无则自己创建/data目录
[root@pihao /]# dd if=/dev/zero of=/data/swap bs=512 count=8388616
- 3、通过mkswap命令将上面新建出的文件做成swap分区
[root@pihao /]# mkswap /data/swap
- 4、查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60
[root@pihao /]# cat /proc/sys/vm/swappiness
0
[root@pihao /]# sysctl -w vm.swappiness=60
- 5、启用 swap 分区
[root@pihao /]# swapon /data/swap
[root@pihao /]# echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
- 6、再次查看swap分区是否启动
[root@pihao data]# cat /proc/swaps
Filename Type Size Used Priority
/data/swap file 4194304 96060 -2
[root@pihao data]#
OK,分区设置成功,这个时候你再使用gitlab发现会流畅很多~~~
分区的设置情况看这个 博客