文章目录
- 01 准备工作
- 02 (可选)配置交换内存
- 03 编辑docker-compose.yml
- 04 启动并修改配置
- 05 nginx反向代理
- 06 (可选)修改配置文件
- 07 访问并登录
01 准备工作
最近想自建一个gitlab服务来保存自己的项目,于是找到gitlab-ce的方式。
开工前先梳理一下状况:
- 具备一台云服务器(我用的腾讯云)
- CentOS7的系统,已安装好了docekr和docker-compose(如果没装先自行装一下)
- 服务器内存为4G(这个内存有点吃紧,先凑合用)
- 服务不直接对外暴露,而是使用nginx做反向代理(实际使用nginx proxy manager来做,主打一个:省心)
- 有一个自己的域名,方便访问,没有的话用ip也能访问(推荐还是用域名,配合HTTPS更舒心)
我的云服务器配置如下,建议不要低于我的配置:
02 (可选)配置交换内存
由于我的服务器内存只有4G,而腾讯云的服务器居然没有给我分配交换内存,于是我决定自己配置交换内存,相当于虚拟内存。
如果已经有交换内存,也可以通过配置来叠加扩大。
以下是Linux命令
# 先查看内存状况
free -h# 在根目录创建swap文件夹
mkdir /swap# 进入到swap目录
cd /swap# 创建一个4096M的交换内存(根据自己情况修改结尾的count属性)
dd if=/dev/zero of=swapfile bs=1MB count=4096# 设置并建立交换文件
mkswap ./swapfile# 赋予交换文件600权限(安全起见)
chmod 600 ./swapfile# 启用交换分区
swapon ./swapfile# 设置开机自动挂载
echo '/swap/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab# 重启服务器
reboot# 查看交换内存是否设置成功
free -h
03 编辑docker-compose.yml
接下来,在root目录下新建一个gitlab文件夹,在其中创建docker-compose.yml
文件并编辑内容。
version: '3'
services:gitlab:image: 'gitlab/gitlab-ce:latest'restart: alwayshostname: '10.0.12.13' # 因为我打算用nginx反向代理,这里填的宿主机的内网ipenvironment: # 配置外部访问链接,这里不建议使用https,否则启动和访问都可能变慢,https在nginx那里去配置GITLAB_OMNIBUS_CONFIG: |external_url 'http://10.0.12.13'ports:- '83:80'# - '443:443' # 因为docker中没使用https,这里注释了# - '22:22' # 暂时用不到,也注释了,注意端口冲突的问题volumes:- './config:/etc/gitlab'- './logs:/var/log/gitlab'- './data:/var/opt/gitlab'
04 启动并修改配置
启动前先拉取镜像
# 在上一步创建的docker-compose.yml所在的目录执行
docker-compose pull# 拉取完成后使用命令启动容器
docker-compose up -d
启动需要花一些时间,我花了5分钟,先暂时不要访问。
05 nginx反向代理
为了安全起见,我做了nginx反向代理,实际是用的nginx proxy manager来完成的,nginx也可自行配置。
如果是使用nginx.conf
配置如下:
(没有真实试过,仅供参考)
http {...server {listen 443 ssl http2; # 使用443 开启httpsserver_name www.xxx.com; # 改成访问的域名或iplocation / {proxy_pass http://127.0.0.1:83; # 内网ip或127.0.0.1加容器外部端口}# 配置证书ssl_certificate /etc/ssl/certificates/www.xxx.com.pem;ssl_certificate_key /etc/ssl/certificates/www.xxx.com.key;}...
}
06 (可选)修改配置文件
我的gitlab启动后,内存占用维持在90%+,可以考虑修改配置文件,牺牲一部分功能来保证运转。
实测内存占用从93%下降到了83%,还算给力。
# 找到外部卷上对应的配置文件
cd ~/gitlab # 这个文件夹是我存放docker-compose.yml的文件夹# 使用编辑器编辑配置文件
vim ./config/gitlab.rb# 将下面两项置为false 因为是个人使用 用不到这些功能
prometheus['enable'] = false # Prometheus 监控
mattermost['enable'] = false # Mattermost 聊天# tips 可能会用到的vim命令
/world # 斜杠后跟要查找的词
n # 跳转到下一个
N # 跳转到上一个
yy # 复制这一行
p # 粘贴复制的内容
u # 撤销一步操作
:noh # 取消高亮显示
:wq # 保存并退出# 接下来进入容器内部
docker exec -it <gitlab容器名或id> /bin/bash# 重载配置
gitlab-ctl reconfigure# 退出容器
exit
07 访问并登录
然后就是输入刚才配置的域名或ip进行访问。
首次访问可以注册账号,也可使用root账户
登录。
# 获取root用户初始密码:
docker exec -it <gitlab容器名或id> grep 'Password:' /etc/gitlab/initial_root_password# 结果如下
Password: xxxxxxxxxxxxxxxxx
(页面下方可以设置成中文)
(完)