docker_alpine_python安装numpy&mysql-client

前言

在使用alpine替换ubuntu进行docker容器化的时候,遇到了一些问题。

主要是pip安装包时候的一些依赖

发现问题的包

Numpy

1
2
3
FROM python:3.8.10-alpine3.14
RUN apk update
RUN apk add make automake gcc g++ subversion python3-dev musl-dev

Mysql-Client

1
2
FROM python:3.8.10-alpine3.14
RUN apk add gcc musl-dev mariadb-connector-c-dev

Pynacl

1
2
# or 正常
RUN apk add build-base python3-dev libffi-dev

Pillow

1
RUN apk add gcc python3-dev jpeg-dev zlib-dev

虚拟包

为了防止这些依赖项最终出现在最终镜像中(保持镜像大小较小),

可以将其中的一些(不是全部!)安装在虚拟包中。

成功安装需要的python库后,可以仅删除Python库安装所需的依赖项。

以Pynacl为例

1
2
3
4
# 安装在虚拟环包pynacl_deps中   不使用缓存
RUN apk add --no-cache --virtual pynacl_deps build-base python3-dev libffi-dev
# 删除虚拟包
RUN apk del pynacl_deps

docker_alpine_python安装numpy&mysql-client

https://blog.rui.plus/2021/2021-12-28/

作者

Rui plus

发布于

2021-12-28

更新于

2022-03-24

许可协议

评论