灵感/技术来源
https://docs.linuxserver.io/images/docker-chromium/
Chromium 安装版本
Version 131.0.6778.139 (Official Build) built on Debian GNU/Linux 12(bookworm) (64-bit)
这是一个基于 Kasm VNC 支持 X86-64/ARM64 部署的几乎全能的浏览器,支持各大流媒体,长时间 Web 端下载,Chromium 扩展插件,支持无缝剪切板,自动全屏(支持移动端),快捷键映射,WebRTC UDP 传输,WebP 压缩,在线文件管理,更是重量级的是支持本地输入法,可以从本地输入中文韩文等语言。
甚至支持调节视频传输码率,支持视频/音乐声音输出,以及麦克风语音输入(VNC 看 4K 不是梦),功能如此全面,那么,古尔丹,代价是什么呢?
[root@server]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE lscr.io/linuxserver/chromium latest dc5933dfa496 4 days ago 2.84GB langren1353/chrome-cn latest 91a806bdb506 13 months ago 677MB
它有着 2.84 GB 的巨大体积,而此前介绍的 Chrome 项目仅有 677 MB,是否值得为了更新的版本和更多的功能,付出 4 倍的存储空间就见仁见智了,各位还请按需选择。
项目目录结构如下
chromium/
config/
docker-compose.yml
Downloads/
ssl/
创建目录
mkdir chromium cd chromium touch docker-compose.yml vim docker-compose.yml
编辑 docker-compose.yml
---
services:
chromium:
image: lscr.io/linuxserver/chromium:latest
container_name: chromium
security_opt:
- seccomp:unconfined #optional 禁用安全限制,兼容旧设备
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Tokyo #时区
- CHROME_CLI=https://www.linuxserver.io/ #optional
- DOCKER_MODS=linuxserver/mods:universal-package-install
- INSTALL_PACKAGES=fonts-noto-cjk # 安装 CJK 语言包
- LC_ALL=zh_CN.UTF-8 # 设置中文
- CUSTOM_USER=admin # 用户名
- PASSWORD=admin # 密码
#- TITLE = # 默认标题为 Chromium
volumes:
- ./config:/config # 映射数据目录
ports:
- 3000:3000 # http 端口
- 3001:3001 # https 端口
shm_size: "2gb" # 内存大小建议不少于 1GB
restart: unless-stopped
构建容器
docker-compose up -d
访问
http://yourhost:3000 https://yourhost:3001
如果 ip 访问正常,挂域名访问后出现 LastActiceAT 错误
KasmVNC encountered an error Uncaught TypeError: Cannot read properties of undefined (reading 'lastActiveAt')
在 nginx 对应 conf 配置文件的 location 模块中加入 WebSocket 支持
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
以下是举例的 conf 配置文件,模块按需求添加即可
# http
server {
listen 80;
server_name your.domain.com;
if ($host = your.domain.com) {
return 301 https://$host$request_uri;
}
}
# https
server {
listen 443 ssl;
server_name your.domain.com;
location / {
proxy_redirect off;
proxy_pass https://127.0.0.1:3001;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
client_max_body_size 100m;
client_body_buffer_size 128k;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
很符合我对 VNC 的想象
要是体积小点就更好了
文章评论