blog-frontend icon indicating copy to clipboard operation
blog-frontend copied to clipboard

十分钟搭建Gitlab

Open Caaalabash opened this issue 4 years ago • 0 comments

?

突然想搭一个自己爽一下, 虽然也不会用, 但是就很爽

参考

通过 docker 搭建自用的 gitlab 服务

GitLab服务器经常502(阿里云搭建)

1. 启用swap分区解决内存不足的问题

阿里云服务器一核二G, 说实话顶不住哦, 于是需要swap分区, 过程如下:

  • 查看当前系统中是否已经启用swap分区
cat /proc/swaps
  • 如果没有, 新建一个专门的文件用于swap分区
# 创建swap大小为bs*count=4294971392(4G)
dd if=/dev/zero of=/data/swap bs=512 count=8388616
  • 将创建出的文件做成swap
mkswap /data/swap
  • 将内核参数vm.swappiness数值根据实际需要调整成60
cat /proc/sys/vm/swappiness
sysctl -w vm.swappiness=60
# 永久修改, 则编辑/etc/sysctl.conf文件,改文件中有vm.swappiness变量配置,默认为0

  • 启用分区
swapon /data/swap
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
  • 观察是否启动
cat /proc/swaps

2. Docker启动

  • 下载Gitlab
docker pull gitlab/gitlab-ce:latest
  • git采用ssh协议操作git仓库, 此处将主机的sshd的22端口映射到容器中, 将主机的sshd端口改为15678
vim /etc/ssh/sshd_config
# Port 22 改为
Port 15678
  • 重启sshd服务
systemctl restart sshd
  • 运行gitlab
docker run \
    -443:443 -p 80:80 -p 22:22 \
    --name gitlab \
    -v /u1/gitlab/config:/etc/gitlab \
    -v /u1/gitlab/logs:/var/log/gitlab \
    -v /u1/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce

这里把主机的 443、80、22 端口直接转发到容器,同时利用 --volume /u1/gitlab/config:/etc/gitlab --volume /u1/gitlab/logs:/var/log/gitlab--volume /u1/gitlab/data:/var/opt/gitlab 这三个参数将 gitlab 的配置、数据和日志持久化到主机文件系统上来。

  • nginx配置, 如果把主机的其他端口转发到容器的80容器, 例如3004
server {
  listen 80;
  server_name gitlab.xxx.xxx;

  location / {
    proxy_pass http://localhost:3004;
  }
}

Caaalabash avatar May 02 '20 08:05 Caaalabash