gpt4 book ai didi

docker - 为什么 --uid 选项在 Alpine 上运行 uWSGI 时会导致权限被拒绝错误?

转载 作者:行者123 更新时间:2023-12-02 21:03:31 25 4
gpt4 key购买 nike

我在基于 Alpine:3.10 的容器中有一个简单的 Flask 应用程序,我想用 uWSGI 运行它。事情是,当我运行它时指定 --uid 参数:

CMD [ "uwsgi", "--socket", "0.0.0.0:80", \
"--uid", "uwsgi", \
"--plugins", "python3", \
"--protocol", "http", \
"--module", "owo.app:app", \
"-p", "4", \
"--enable-threads"]

它记录权限被拒绝错误并以代码 1 退出:
ind(): Permission denied [core/socket.c line 769]

但是,如果我评论 --uid 参数,它会警告我我以 root 身份运行它(这很糟糕),但运行良好。我究竟做错了什么?

最佳答案

仅限 root可以绑定(bind)到 < 1024 的端口。您应该更改您的 uwsgi命令行在端口 80 以外的地方运行,例如:

CMD [ "uwsgi", "--socket", "0.0.0.0:8080", \
"--uid", "uwsgi", \
"--plugins", "python3", \
"--protocol", "http", \
"--module", "owo.app:app", \
"-p", "4", \
"--enable-threads"]

在容器内运行的端口无关紧要,因为当您 docker run 时,您始终可以将其映射到主机上的端口 80。你的容器( docker run -p 80:8080 ...)。

关于docker - 为什么 --uid 选项在 Alpine 上运行 uWSGI 时会导致权限被拒绝错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59322762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com