在高山docker映像中使用asyncpg python模块 [英] Use asyncpg python module in alpine docker image

查看:250
本文介绍了在高山docker映像中使用asyncpg python模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用python模块 asyncpg 基于 python:3-8.alpine 构建图像.

I'm trying to build an image based on python:3-8.alpine, using the python module asyncpg.

这是我的Dockerfile的一部分:

Here is a part of my Dockerfile:

FROM python:3.8-alpine

RUN apk add gcc
RUN apk add python3-dev

RUN pip3 install asyncpg

我添加了 gcc python3-dev ,因为我认为我需要它们能够根据文档构建 asyncpg :href ="https://magicstack.github.io/asyncpg/current/installation.html" rel ="nofollow noreferrer"> https://magicstack.github.io/asyncpg/current/installation.html (但我不确定,我认为我应该能够在不构建此模块的情况下安装)

I added gcc and python3-dev because I think I need them to be able to build asyncpg according to the documentation : https://magicstack.github.io/asyncpg/current/installation.html (but i'm not sure of that, I think I should be able to install without building this module)

但是在构建图像时出现以下错误:

But I have the following error when building the image:

gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/local/include/python3.8 -c asyncpg/pgproto/pgproto.c -o build/temp.linux-x86_64-3.8/asyncpg/pgproto/pgproto.o -O2 -fsigned-char -Wall -Wsign-compare -Wconversion
In file included from asyncpg/pgproto/pgproto.c:29:
/usr/local/include/python3.8/Python.h:11:10: fatal error: limits.h: No such file or directory
    11 | #include <limits.h>
       |          ^~~~~~~~~~
compilation terminated.
error: command 'gcc' failed with exit status 1

如何解决此错误并安装 asyncpg ?

How can I solve this error and install asyncpg ?

谢谢

推荐答案

您必须安装构建工具,而不仅仅是gcc.您也可以删除 RUN apk add python3-dev 步骤.由于您使用的是python作为基本图像.

You have to install build tools not just gcc. Also you can remove RUN apk add python3-dev step. Since you're using python as the base image.

FROM python:3.8-alpine

RUN apk add --no-cache build-base

RUN pip3 install asyncpg 

建立标准输出

Step 3/3 : RUN pip3 install asyncpg
 ---> Running in e109c84feec3
Collecting asyncpg
  Downloading asyncpg-0.20.1.tar.gz (734 kB)
Building wheels for collected packages: asyncpg
  Building wheel for asyncpg (setup.py): started
  Building wheel for asyncpg (setup.py): finished with status 'done'
  Created wheel for asyncpg: filename=asyncpg-0.20.1-cp38-cp38-linux_x86_64.whl size=1337371 sha256=5a0dcfc8c327eb4068814a9bf0a1d9beee1b9c440c1100efcede8ef63b1dac09
  Stored in directory: /root/.cache/pip/wheels/22/c9/61/991ebd5df043025e222695b7c4bc84e527bf3f0239073f0ea2
Successfully built asyncpg
Installing collected packages: asyncpg
Successfully installed asyncpg-0.20.1
Removing intermediate container e109c84feec3
 ---> 21dacd97e784
Successfully built 21dacd97e784

这篇关于在高山docker映像中使用asyncpg python模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆