关于amh面板Supervisor守护进程功能环境变量设置问题
想了想还是单独提出来,如果后续有人也遇到,可以参考~~
情况秒说:
现在,我通过二进制文件方式部署了gitea,管理用户为自建的git,权限755
官方的Supervisor配置文件如下:
[program:gitea]
directory=/home/git/go/src/github.com/go-gitea/gitea/
command=/home/git/go/src/github.com/go-gitea/gitea/gitea web
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/var/log/gitea/stdout.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/gitea/stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
user = git
environment = HOME="/home/git", USER="git"
我实际运行时,需要设置环境变量
/home/wwwroot/Lngx02/domain/gitea.a.site/web/gitea-1.22.2-linux-amd64 web -w /home/wwwroot/Lngx02/domain/gitea.a.site/web/Data -p 10001
而AMH面板,目前的UI配置是没有环境变量这一节的,如果直接修改配置文件,手动增加
environment = HOME="/home/git", USER="git"
似乎也没有作用
想请教下大佬
目前,我有三种办法解决这个问题:
一是直接在服务器内再次安装一次Supervisor,增加配置文件,不过这个办法太重复占用资源了
二是直接用screen后台运行,但这不是长久之计
三是有个离谱的办法:先手动新建一个脚本a.sh,通过这个脚本定义变量,然后启动:
# /home/wwwroot/Lngx02/domain/gitea.a.site/web/a.sh
export HOME="/home/wwwroot/Lngx02/domain/gitea.a.site/web/Gituser/"
export GITEA_WORK_DIR="/home/wwwroot/Lngx02/domain/gitea.a.site/web/Data"
export GITEA_CUSTOM="/home/wwwroot/Lngx02/domain/gitea.a.site/web/Data"
export PORT="10001"
exec /home/wwwroot/Lngx02/domain/gitea.asite/web/gitea-1.22.2-linux-amd64 web -w $GITEA_WORK_DIR -C $GITEA_CUSTOM -p $PORT
然后再用AMH的Supervisor守护进程或者计划任务去守护运行这个脚本……
不过这也太鸡肋了
此外,近期陆续搬迁docekr到amhpod时发现几个运用的问题:
- 仅能使用docekr-compose方式部署的docekr容器目前没法代替
- 需要大量交互的docker容器目前没法使用
- 不知道怎么进入podman部署的容器内部去执行命令或者导出文件数据,一旦部署时少绑定宿主机文件地址,后续很麻烦
- 部署容器时,没有进度显示,,有时心里贼着急
- 另外使用时发现,如果某个容器想重新部署,点击暂停再点击未运行时可以直接清除配置……没有说明用户自己尝试确实蛋疼
建议是用environment = 的方式添加环境变量,
『配置文件』那选项看是用的div编辑的,回车会等操作会产生其它html字符,
用户开发的软件,应该是没考虑这点,保存有些问题。
这边建议直接修改配置文件,先
ln -s /etc/supervisord.d/ /home/supervisord.d
文件管理进入 /home/supervisord.d 编辑文件。
编辑后,再在Supervisor服务管理里重启。
容器管理方面,要交互或面板上还没的功能,可以用ssh操作,
在ssh执行设置下PATH目录,
就可以用podman命令,与docker命令相似。