V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dzdh
V2EX  ›  Docker

容器中 run > supervisor -> cron -f -m off 拿不到环境变量 怎么破

  •  
  •   dzdh · 2022-09-22 10:59:19 +08:00 · 1008 次点击
    这是一个创建于 824 天前的主题,其中的信息可能已经有所发展或是发生改变。

    搜了很多资料说是 CMD 先 Printenv 到一个文件然后 cron 触发的 shell 中再 . /env

    除了这样还有啥其他办法吗?

    4 条回复    2022-09-22 12:26:37 +08:00
    mritd
        1
    mritd  
       2022-09-22 11:08:15 +08:00 via iPhone
    直接 ENV 暴露 然后 CMD 通过 bash -c 执行 sup… 试试呢? 不过题外话,不太推荐容器里放守护工具然后启动多个应用
    dzdh
        2
    dzdh  
    OP
       2022-09-22 11:56:44 +08:00
    还是 cmd run.sh printenv > /etc/environment 了
    julyclyde
        3
    julyclyde  
       2022-09-22 12:23:30 +08:00
    你是不是在 cron 里
    第一行引用这个环境变量文件
    第二行运行了实际干活的程序?
    julyclyde
        4
    julyclyde  
       2022-09-22 12:26:37 +08:00
    这事跟容器没多大关系
    建议你看一下 man crond 里这句话
    Cron supports access control with PAM if the system has PAM installed. For more information, see pam(8). A PAM configuration file for crond is installed in /etc/pam.d/crond. The daemon loads the PAM environment from the pam_env module. This can be over‐
    ridden by defining specific settings in the appropriate crontab file.


    man 5 crontab 里的环境变量方面的内容
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5812 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:47 · PVG 10:47 · LAX 18:47 · JFK 21:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.