podman服务部署记录

不小心删库了,重新部署一些服务,记录一下踩的坑

koel

数据库有文件权限问题,一旦将数据库文件映射到本地文件目录,就连接不上,推断是它代码有问题
在 podman 里设置为新建卷挂载即可,不过这样就不能持久化了
这玩意 bug 挺多的,平时不要随便动,能用就行了

sharelatex

固定版本为 3.5.6 更新的版本似乎有数据库连接问题(推测仍然是权限问题)

默认的 sharelatex 版本是精简版的,下面使之支持中文和 minted

下载 tlmgr 更新脚本: wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
更新 tlmgr:sh update-tlmgr-latest.sh -- --upgrade
更换到国内源:tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/
tlmgr 自更新:tlmgr update --self --all
安装完整版 texlive:tlmgr install scheme-full

将字体安装到 /usr/share/font 目录下,然后使用 mkfontscale,mkfontdir,fc-cache -fv 刷新(需要包 ttf-mscorefonts-installerfontconfig

安装支持 minted 包的 pygments:python3-pygments

OCI 问题

装回了 stable 版本,但似乎 OCI 遇到了一些问题。
默认的 containernetworking-plugins 包版本过低,需要到 http://archive.ubuntu.com/ubuntu/pool/universe/g/golang-github-containernetworking-plugins/ 下载 containernetworking-plugins_1.1.1+ds1-1_amd64.deb ,手动通过 dpkg 安装。

Docker 配置 proxy

Docker 的镜像拉取是 system service,无法通过环境变量(如 export HTTP_PROXY=xxx)来设置代理。需要通过以下步骤

  1. 创建 systemd 目录 sudo mkdir -p /etc/systemd/system/docker.service.d
  2. 创建 proxy 设置 sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
  3. 写入配置
Environment="HTTP_PROXY=http://114514"  
Environment="HTTPS_PROXY=http://1919810"  
Environment="NO_PROXY=localhost,127.0.0.1"
  1. 重新加载 systemd 并重启 docker
sudo systemctl daemon-reexec  
sudo systemctl daemon-reload
sudo systemctl restart docker

Docker 配置 Register 不走 https

Docker 默认镜像应该走 https,但有时候内网并不太需要。可以配置其信任某些域名。

/etc/docker 目录下创建 daemon.json 并写入以下类似内容。如果文件不存在,则直接创建(大部分 Linux 发行版没有该配置,需要手动创建)

{
  "insecure-registries": [
    "registry.gitlab.pku.sycstudio.com"
  ]
}

然后重启 Docker 服务 sudo systemctl restart docker.
在命令行中输入 sudo docker info | grep -A10 "Insecure Registries" 应该能看到类似下面的内容

❯ sudo docker info | grep -A5 "Insecure Registries"
 Insecure Registries:
  registry.gitlab.pku.sycstudio.com
  ::1/128
  127.0.0.0/8
 Live Restore Enabled: false
 Firewall Backend: iptables

此时说明已经成功