模板下载
在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
|
Copy
ok,使用ssh终端测试能否链接上

初始化配置
时区
1
| dpkg-reconfigure tzdata
|
Copy

语言
1
| dpkg-reconfigure locales
|
Copy

软件源更换
由于模板并未预装 curl,所以我们需要手动安装下
1
2
| apt update
apt install curl
|
Copy

完成之后再执行下属命令
1
| bash <(curl -sSL https://linuxmirrors.cn/main.sh)
|
Copy

核显配置
如果你创建的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
|
Copy
参数说明:
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
|
Copy
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
|
Copy

image-20240228152123636
安装docker软件包

1
| sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
Copy
验证是否安装成功

1
| sudo docker run hello-world
|
Copy
开机启动

1
| systemctrl enable docker
|
Copy
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
|
Copy
赋予权限
1
| chmod +x /usr/local/bin/docker-compose
|
Copy
测试

Copy
配置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'
|
Copy
优化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
|
Copy
相关参数设置参考官方给出的配置
https://docs.gitlab.com/omnibus/settings/memory_constrained_envs.html
评论