关于amh面板Supervisor守护进程功能环境变量设置问题?

关于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部署的容器内部去执行命令或者导出文件数据,一旦部署时少绑定宿主机文件地址,后续很麻烦
  • 部署容器时,没有进度显示,,有时心里贼着急
  • 另外使用时发现,如果某个容器想重新部署,点击暂停再点击未运行时可以直接清除配置……没有说明用户自己尝试确实蛋疼
阅读 1.2k
avatarAI BotBETA

针对Supervisor环境变量设置问题的回答

在Supervisor配置文件中设置环境变量时,确保环境变量的设置正确无误,并且Supervisor的配置文件被正确加载。根据你提供的情况,如果直接在Supervisor配置文件中设置environment参数没有效果,可能是Supervisor没有正确读取或应用这些设置。以下是一些可能的解决步骤:

  1. 确认Supervisor版本
    确保你使用的Supervisor版本支持在配置文件中设置环境变量。大多数现代版本的Supervisor都支持此功能。
  2. 检查配置文件语法
    确保你的Supervisor配置文件语法正确,没有多余的空格或拼写错误。environment参数应该紧跟在程序配置块的下方,并且格式正确,如:

    [program:gitea]
    directory=/home/git/go/src/github.com/go-gitea/gitea/
    command=/path/to/gitea-binary web -w /some/path -p 10001
    autostart=true
    autorestart=true
    startsecs=10
    ...
    environment=HOME="/home/wwwroot/Lngx02/domain/gitea.a.site/web/Gituser/",USER="git",GITEA_WORK_DIR="/home/wwwroot/Lngx02/domain/gitea.a.site/web/Data",GITEA_CUSTOM="/home/wwwroot/Lngx02/domain/gitea.a.site/web/Data",PORT="10001"

    注意:environment设置中的每个环境变量之间应该使用逗号加空格分隔,而不是换行。

  3. 重新加载Supervisor配置
    修改Supervisor配置文件后,需要重新加载Supervisor配置以应用更改。你可以通过运行supervisorctl rereadsupervisorctl update命令来实现。
  4. 检查Supervisor日志
    查看Supervisor的日志文件,看是否有关于配置文件或环境变量的错误消息。
  5. 使用脚本启动
    如果你仍然遇到问题,可以考虑使用你提到的脚本方法。这种方法虽然略显复杂,但可以作为临时解决方案。确保脚本具有执行权限,并且Supervisor配置为运行该脚本。

针对AMH Pod与Docker相关问题的回答

  • Docker Compose的替代
    如果AMH Pod目前不支持Docker Compose,你可能需要寻找其他容器编排工具,如Kubernetes(通过K8s集群)或Docker Swarm,这些工具提供了更复杂的容器编排和管理功能。
  • 大量交互的Docker容器
    对于需要大量交互的容器,确保你的容器配置允许适当的端口映射和交互模式(如使用-it标志在Docker命令行中)。如果AMH Pod不支持这些交互模式,可能需要重新考虑容器设计或寻找其他管理工具。
  • 进入Podman容器
    Podman提供了与Docker类似的命令来管理容器。你可以使用podman exec -it <container_id> /bin/bash(或相应的shell)来进入正在运行的容器。确保你的Podman版本和配置支持此功能。
  • 部署进度显示
    如果AMH Pod在部署容器时没有进度显示,这可能是由于界面设计或后端实现的问题。你可能需要联系AMH Pod的开发者或查看其文档以获取更多信息。
  • 容器重新部署和配置清除
    在重新部署容器时,请仔细阅读AMH Pod的文档和界面提示,以确保你了解重新部署的操作将如何影响现有配置和数据。如果可能,建议在执行此类操作之前备份重要数据。如果AMH Pod没有提供明确的重新部署选项或警告,你可能需要手动管理容器配置和生命周期。
1 个回答

建议是用environment = 的方式添加环境变量,
『配置文件』那选项看是用的div编辑的,回车会等操作会产生其它html字符,
用户开发的软件,应该是没考虑这点,保存有些问题。

这边建议直接修改配置文件,先
ln -s /etc/supervisord.d/ /home/supervisord.d

文件管理进入 /home/supervisord.d 编辑文件。
编辑后,再在Supervisor服务管理里重启。

容器管理方面,要交互或面板上还没的功能,可以用ssh操作,
在ssh执行设置下PATH目录,

export PATH=$PATH:/usr/local/ampod-1.0/conmon/bin:/usr/local/ampod-1.0/podman/bin HOME=/home/usrdata/ampod/;
alias podman='podman --root /home/usrdata/ampod/ --runroot /home/usrdata/ampod/.runroot/';

就可以用podman命令,与docker命令相似。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏