整活 · 26 2 月, 2022 0

Docker部署AnyLink注意事项(主要针对挂载目录以及server.toml的配置)

AnyLink是啥

首先AnyLink是啥,懂得都懂,不懂的应该也不会来看这篇文章了。有想知道的可以看一下作者的Github。传送门在此

有啥要注意的

以下为典型的指定挂载目录的docker启动方式:

docker run -itd --name anylink --privileged \
    -p 443:443 -p 8800:8800 \
    --restart=always \
    bjdgyc/anylink \
    -v /root/anylink:/app/conf
    # ^^把本地目录/root/anylink映射到容器目录/app/conf

其中server.toml是指定的配置文件。Github上给出的sample内容如下:

#数据文件
db_type = "sqlite3"
db_source = "./conf/anylink.db"
#证书文件
cert_file = "./conf/vpn_cert.crt"
cert_key = "./conf/vpn_cert.key"
files_path = "./conf/files"
log_level = "debug"

#系统名称
issuer = "XX公司VPN"
#后台管理用户
admin_user = "admin"
#pass 123456
admin_pass = "$2a$10$UQ7C.EoPifDeJh6d8.31TeSPQU7hM/NOM2nixmBucJpAuXDQNqNke"
jwt_secret = "abcdef.0123456789.abcdef"

#服务监听地址
server_addr = ":443"
#后台服务监听地址
admin_addr = ":8800"

有些小伙伴可能会在3~7行的地方指定自己的数据库和证书路径。这里有几点要注意:

  1. Docker启动不支持绝对路径。请确保指定文件被置于执行启动命令的目录下(可以有次级文件夹)。
  2. 特别注意:无论有没有次级文件夹,前面的./conf/一定不能少。

配置案例

假设在/root/anylink执行docker启动命令。/root/anylink内文件结构是这样的:

/root/anylink
 |- server.toml
 |- anylink.db
 |- profile.xml
 |- private.key
 |- cert.crt
 |- files/

那么server.toml的path部分应该写成这样:

# 略略略
db_source = "./conf/anylink.db"
cert_file = "./conf/cert.crt"
cert_key = "./conf/private.key"
files_path = "./conf/files"
# 略略略

如果不这么写,容器启动后会因为找不到证书文件而循环重启。

相关链接

👉 Openssl生成自签名证书(完全傻瓜化)