You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu22.04的Dockerfile中如何将PyJWT从2.3.0升级到2.4.0

问题根因

之前执行pip install pyjwt==2.4.0不生效的核心原因是:镜像中安装的AWS CLI v2 采用捆绑独立Python运行时的分发模式,不依赖系统全局的Python/pip环境,所有自带依赖包都存放在AWS CLI自身的安装目录下。用系统pip安装的PyJWT会存放在系统Python的依赖目录,和AWS CLI的隔离环境完全不互通,安全扫描检出的PyJWT 2.3.0就是AWS CLI内置捆绑的版本。
当前Dockerfile内除AWS CLI v2外,其余通过apt安装的Nginx、PHP、系统工具等组件均不依赖PyJWT包,不存在其他来源的低版本PyJWT。

修复方案

直接调用AWS CLI内置的pip工具升级PyJWT即可,不需要额外在镜像中安装系统Python或pip组件,修改Dockerfile中AWS CLI安装的对应RUN块:

RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \
    && unzip awscliv2.zip \
    && ./aws/install \
    && /usr/local/aws-cli/v2/current/bin/pip install PyJWT==2.4.0 \
    && rm awscliv2.zip
验证方法

镜像构建完成后,在容器内执行以下命令,输出版本号为2.4.0即修复生效:

/usr/local/aws-cli/v2/current/bin/python -c "import jwt; print(jwt.__version__)"
注意事项
  • PyJWT 2.4.0完全向后兼容2.3.0版本,仅做安全修复,升级后不会影响AWS CLI的正常功能
  • 后续如果重新安装/升级AWS CLI版本,会覆盖内置的依赖包,需要重新执行上述PyJWT升级命令,建议把升级命令固定在AWS CLI安装步骤后,避免后续构建重新引入低版本漏洞

内容的提问来源于stack exchange,提问作者flixy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 22:54:37