一次 Playwright + Docker 的踩坑记录
本文作者分享了在服务器上部署使用Playwright进行网页截图功能时遇到的三个主要问题及解决方案。首先,由于网络环境差,无法在线下载Chromium浏览器,作者采用离线拷贝浏览器文件并设置环境变量`PLAYWRIGHT_BROWSERS_PATH`指向该目录的方法绕过下载。其次,即使浏览器文件存在,仍因缺少系统动态库而无法启动,需在Docker中安装Chromium的运行时依赖库。最后,为解决中文字体显示为方框或误用日文字形的问题,作者安装了Noto CJK字体并配置字体优先级,确保简体中文优先显示。文末提供了完整的Dockerfile示例,通过离线浏览器、安装依赖和调整字体,最终实现了稳定运行。
Nginx如何解析后端动态IP
作者家里拥有动态公网 IP,但 80/443 端口被封且无法备案。为绕过限制,他用 40 多元购入一台阿里云 3M 轻量服务器作 nginx 反向代理并完成了域名备案。发现电信 IP 变动后,DDNS 已更新,但 nginx 仅启动时解析域名导致 502,重启才能恢复。经排查,得知 nginx 启动后不再重新解析域名。参考教程后,作者在配置里改用变量形式的代理地址,并增加 resolver 字段及 10s 的 DNS 缓存,成功支持动态 IP。实测 IP 变动后 <blog.dimeta.top> 约 10 分钟可自动恢复访问,问题解决。
记录在LXC容器内配置docker和1panel面板
用户为了在家庭NAS上搜索并管理老照片,决定用Immich建一个私图库,并选了“特权LXC + 1Panel + Docker”这套组合。过程中踩了四个坑:最初普通LXC不能挂SMB,重建特权LXC后又连不上终端;配置/etc/fstab后SMB搞定;装1Panel、加第三方应用源后能在商店找到Immich;点安装却遇到Docker容器起不来且日志为空,最后在宿主机上改LXC配置(lxc.cgroup2.devices.allow: a 并把 lxc.cap.drop 置空)重启容器后才一切正常。经验是在特权LXC里跑Docker记得补这两条参数。