【问题标题】:Error: positional arguments are not supported错误:不支持位置参数
【发布时间】:2014-03-17 20:45:59
【问题描述】:
[program:sam_reports_uwsgi]
command=uwsgi --ini /var/www/phis-ng/server_config/staging_wsgi.ini
autostart=true
autorestart=true
stopsignal=QUIT
stdout_logfile=/var/log/sam_reports/stdout.log
stderr_logfile=/var/log/sam_reports/stderr.log
user=ubuntu
directory=/var/www/phis-ng/src/imam

这是我用于 supervisord 的 conf 文件,但是当我尝试在它所在的文件夹中运行 supervisord staging_supervisor.conf 时,它给了我这个错误:

Error: positional arguments are not supported

将它与我通过 Google 和 supervisord 文档找到的内容进行比较,我看不出我做错了什么。我正在使用supervisord 3.0。

【问题讨论】:

    标签: uwsgi supervisord


    【解决方案1】:

    CMD 替换 ENTYRPOINT 是一种 slick 解决方案,因为当容器使用命令运行时,例如docker run -it IMAGE /bin/bashCMD 被忽略。它可能适用于小型 Dockerfile,但在具有多层的大型 Dockerfile 中可能很难调试。但我找到了一个使用ENTRYPOINTsupervisord 避免错误不支持位置参数错误的解决方案。 只需将supervisord 命令放在shell 脚本.sh 中,将其复制到容器中,然后在该文件上使用ENTRYPOINT,例如:

    run_supervisord.sh

    #!/bin/bash
    /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
    

    Dockerfile

    COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
    COPY image_scripts/run_supervisord.sh /opt/bin/run_supervisord.sh
    ENTRYPOINT ["bash", "/opt/bin/run_supervisord.sh"]
    

    【讨论】:

      【解决方案2】:

      确保supervisord 作为守护程序运行,并为每个程序尝试supervisorctl

      对于 ubuntu,创建包含 [program:some_app] 部分的 /etc/supervisord/conf.d/some_app.conf 文件。

      然后,启动它。

      supervisorctl reload
      supervisorctl start some_app
      

      确认它正在运行

      supervisorctl status
      

      就是这样。

      【讨论】:

        【解决方案3】:

        变化:

        ENTRYPOINT ["/usr/bin/supervisord"]
        

        CMD ["/usr/bin/supervisord"]
        

        很遗憾,还不能解释为什么这会有所帮助。

        【讨论】:

        • CMD 在容器使用命令运行时可能会被忽略,例如docker run -it IMAGE /bin/bash 所以这个解决方案可能非常混乱且难以调试。您可以查看我的回复以获取更多信息。
        【解决方案4】:

        您在配置文件之前缺少-c。它认为配置文件是一个“位置参数”。

        【讨论】:

          【解决方案5】:

          不知何故,supervisord 需要 CMD 指令。所以,你可以这样写:

          CMD []
          ENTRYPOINT ["supervisord", "-n", "-c", "/etc/supervisord.conf"]
          

          【讨论】:

            猜你喜欢
            • 2021-06-27
            • 2013-02-26
            • 1970-01-01
            • 1970-01-01
            • 2015-10-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-01-10
            相关资源
            最近更新 更多