alpine介绍
Alpine Linux 是一个社区开发的面向安全应用的轻量级Linux发行版。
简单来说,很多docker都是基于alpine开发的。因为alpine很小,才5.5M,相比于centos,redhat,ubantu等等,小太多了。当然它很多工具包都没有,最简单的gcc就没有。但是它内置apk这个工具管理包,想多了解可以百度一下相关信息。
cryptography介绍
Cryptography 是一个开发包,为 Python 开发者们提供了加密基元(cryptographic primitives)和秘诀(recipes)。
简单点,我们各种加密解密基本上都通过这个开发包完成。
使用案例1:微信小程序登录获取登录信息时候会使用cryptography来解密。
使用案例2:python的channels使用cryptography
问题:
百度一圈没有合适的答案,去官网,官网给的FAQ也是错误的。最后在git上面找到大佬给的解决方案。
原因是alpine内置的rust版本号太低了。至少需要rust>1.45,但是官网提示1.41即可。
具体解决方案
因为我们使用alpine一般都是基于docker创建最小实例容器时使用,这里给一个docker的RUN:
ENV PATH="/root/.cargo/bin:${PATH}"
RUN curl https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-musl/rustup-init --output /tmp/rustup-init \
&& chmod +x /tmp/rustup-init \
&& /tmp/rustup-init -y \
&& pip install --no-cache-dir cryptography \
&& rustup self uninstall -y
其他的可以依靠官网来解决。比如必须安装的几个包apk add --no-cache xxx