模板下载
下载模板前请务必确保已经替换过LXC源,若还未替换可参考《PVE系列-更换软件&容器源》进行更换LXC源操作。
在PVE后台页面选择 local(pve)
-> CT模板
-> 模板
选择对应镜像下载。这里以debian12为例:
点击下载并等待下载完成。
创建LXC容器
点击右上方创建CT
来创建LXC容器
勾选无特权的容器
选项并填写配置信息
模板选择刚下载好的debian12
根据实际需要划分磁盘大小,笔者这边有存储需要,因此新增了一块存储磁盘
CPU和内存分配根据实际需求划分即可。这边以运行gitlab为例,2C8G200G。
网络配置
若ipv6获取不到地址,切换为SLAAC尝试下
DNS保持默认即可
等待创建完成
启动LXC容器
创建完成后,来到选项控制台模式
调整为 shell
,否则启动后是黑屏状态。
调整为shell后再点击启动。
点开控制台,开启远程链接。
1
2
3
4
5
|
#允许远程登录
sed -i '/PermitRootLogin/ a PermitRootLogin yes' /etc/ssh/sshd_config
#重启ssh服务
systemctl restart sshd
|
ok,使用ssh终端
测试能否链接上
初始化配置
时区
1
|
dpkg-reconfigure tzdata
|
语言
1
|
dpkg-reconfigure locales
|
软件源更换
由于模板并未预装 curl,所以我们需要手动安装下
1
2
|
apt update
apt install curl
|
完成之后再执行下属命令
1
|
bash <(curl -sSL https://linuxmirrors.cn/main.sh)
|
核显配置
如果你创建的LXC容器不需要使用核显的话,这一部分可以跳过。
【注意】下述操作需要在宿主机操作
使用命令ls -l /dev/dri
查询硬件信息
这里的226,0和226,128是主次设备号
编辑配置文件/etc/pve/lxc/容器id.conf
我这边是 /etc/pve/lxc/100.conf
1
2
3
4
5
6
7
|
#新增下列内容
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file
lxc.apparmor.profile: unconfined
|
参数说明:
lxc.apparmor.profile: unconfined
用于关闭 LXC 容器的apparmor保护,开启状态无法安装 Docker
Tips
核显这部分内容还尚未测试
安装Docker
设置docker的apt源
1
2
3
4
5
|
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
1
2
3
4
5
6
|
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
|
安装docker软件包
1
|
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
验证是否安装成功
1
|
sudo docker run hello-world
|
开机启动
1
|
systemctrl enable docker
|
docker-compose安装
下载compose
1
|
curl -SL https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
|
赋予权限
1
|
chmod +x /usr/local/bin/docker-compose
|
测试
配置Gitlab
使用docker-compose的方式部署,这里直接放上配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
version: '3.6'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: '192.168.10.102' #没有域名填写本机ip
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.10.102' #可填本机ip
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['backup_keep_time'] = 1296000 # 15 Day, 1296000 seconds
gitlab_rails['gitlab_shell_ssh_port'] = 2222 #ssh端口
#CI/CD
gitlab_rails['gitlab_default_projects_features_builds'] = false
#自定义头像
gitlab_rails['gravatar_plain_url'] = 'http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon'
ports:
- '2080:80'
- '2443:443'
- '2222:22'
volumes:
- '/data/gitlab/config:/etc/gitlab'
- '/data/gitlab/logs:/var/log/gitlab'
- '/data/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
|
优化gitlab
修改gitlab的配置,找到/etc/gitlab/gitlab.rb文件,添加下属配置:
1
2
3
4
5
6
7
8
9
10
11
|
#puma相关
puma['worker_timeout'] = 60
puma['worker_processes'] = 2
puma['per_worker_max_memory_mb'] = 768
#postgresql相关
postgresql['max_worker_processes'] = 4
postgresql['shared_buffers'] = "128MB"
#关闭prometheus
prometheus_monitoring['enable'] = false
#sidekiq相关
sidekiq['max_concurrency'] = 10
|
相关参数设置参考官方给出的配置
https://docs.gitlab.com/omnibus/settings/memory_constrained_envs.html