簡體   English   中英

在 alpine docker 映像中使用 asyncpg python 模塊

[英]Use asyncpg python module in alpine docker image

我正在嘗試使用 python 模塊asyncpg構建基於python:3-8.alpine的圖像。

這是我的 Dockerfile 的一部分:

FROM python:3.8-alpine

RUN apk add gcc
RUN apk add python3-dev

RUN pip3 install asyncpg

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 ,我想我應該能夠在不構建這個模塊的情況下安裝)

但是在構建圖像時出現以下錯誤:

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

謝謝

您必須安裝構建工具,而不僅僅是 gcc。 您也可以刪除RUN apk add python3-dev步驟。 由於您使用 python 作為基礎映像。

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

您忘記添加musl-dev庫。 這是工作 Dockerfile

FROM python:3.8-alpine

RUN apk add gcc python3-dev musl-dev

RUN pip3 install asyncpg

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM