docker - 为什么Docker中的uWSGI无法通过CMD而是通过命令行运行?

标签 docker uwsgi alpine

我有以下Dockerfile:

FROM alpine
RUN apk add uwsgi
CMD ["/usr/sbin/uwsgi", "--socket 127.0.0.1:8000"]

使用docker run <image name>运行它会导致以下错误:
/usr/sbin/uwsgi: unrecognized option: socket 127.0.0.1:8000
getopt_long() error

但是,运行docker run <image name> /usr/sbin/uwsgi --socket 127.0.0.1:8000工作正常。根据the docs的说法,像这样使用CMD“不会调用命令shell。这意味着正常的shell处理不会“发生”。我不确定这是否是罪魁祸首。

在仍然使用 Alpine 版本的同时,如何使uWSGI与CMD一起使用?

最佳答案

--socket127.0.0.1:8000是不同的选项。
您必须指定:

CMD ["/usr/sbin/uwsgi", "--socket", "127.0.0.1:8000"]

关于docker - 为什么Docker中的uWSGI无法通过CMD而是通过命令行运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57633228/

相关文章:

python - uwsgi:发送http响应并继续执行

docker - 在 alpine 上安装 MongoDB 的问题

docker - 当我在docker上使用node-alpine时,它无法正常工作

django - 在 Amazon Elastic Beanstalk 上使用 SQS 的 Celery 在消息等待时经常长时间暂停

mongodb - 在共享文件夹下运行Mongo的Boot2Docker(在Windows上)(不支持此文件系统)

Dockerfile Alpine Image APK无法找到Java 8

git - 在Docker Alpine上构建Git时如何减小Git二进制文件的大小?

azure - 无法将 Jenkins Windows 10 从站连接到正在运行的主站

python - wsgi 服务器由什么组成?

django - 配置 uwsgi 服务器以提高性能