Alpine Linux에 Panda를 설치하는 데 시간이 걸리는 이유
기본 OS Alpine vs.를 사용하여 Pandas와 Numpy를 Docker 컨테이너에 설치하는 것을 확인했습니다.CentOS나 Debian은 시간이 훨씬 더 오래 걸립니다.저는 시차를 증명하기 위해 아래에 약간의 테스트를 만들었습니다.Alpine이 Pandas와 Numpy를 설치하는 데 필요한 빌드 종속성을 업데이트하고 다운로드하는 데 몇 초가 걸리는 것 외에, 왜 setup.py 은 Debian 설치보다 약 70배나 더 많은 시간이 걸립니까?
Alpine을 기본 이미지로 사용하여 설치 속도를 높일 수 있는 방법이 있습니까? 아니면 Pandas나 Numpy와 같은 패키지에 사용하기에 Alpine과 비슷한 크기의 다른 기본 이미지가 있습니까?
도커파일.debian
FROM python:3.6.4-slim-jessie
RUN pip install pandas
Pandas & Numpy로 Debian 이미지 구축:
[PandasDockerTest] time docker build -t debian-pandas -f Dockerfile.debian . --no-cache
Sending build context to Docker daemon 3.072kB
Step 1/2 : FROM python:3.6.4-slim-jessie
---> 43431c5410f3
Step 2/2 : RUN pip install pandas
---> Running in 2e4c030f8051
Collecting pandas
Downloading pandas-0.22.0-cp36-cp36m-manylinux1_x86_64.whl (26.2MB)
Collecting numpy>=1.9.0 (from pandas)
Downloading numpy-1.14.1-cp36-cp36m-manylinux1_x86_64.whl (12.2MB)
Collecting pytz>=2011k (from pandas)
Downloading pytz-2018.3-py2.py3-none-any.whl (509kB)
Collecting python-dateutil>=2 (from pandas)
Downloading python_dateutil-2.6.1-py2.py3-none-any.whl (194kB)
Collecting six>=1.5 (from python-dateutil>=2->pandas)
Downloading six-1.11.0-py2.py3-none-any.whl
Installing collected packages: numpy, pytz, six, python-dateutil, pandas
Successfully installed numpy-1.14.1 pandas-0.22.0 python-dateutil-2.6.1 pytz-2018.3 six-1.11.0
Removing intermediate container 2e4c030f8051
---> a71e1c314897
Successfully built a71e1c314897
Successfully tagged debian-pandas:latest
docker build -t debian-pandas -f Dockerfile.debian . --no-cache 0.07s user 0.06s system 0% cpu 13.605 total
도커파일.알파인
FROM python:3.6.4-alpine3.7
RUN apk --update add --no-cache g++
RUN pip install pandas
Pandas & Numpy로 알파인 이미지 구축:
[PandasDockerTest] time docker build -t alpine-pandas -f Dockerfile.alpine . --no-cache
Sending build context to Docker daemon 16.9kB
Step 1/3 : FROM python:3.6.4-alpine3.7
---> 4b00a94b6f26
Step 2/3 : RUN apk --update add --no-cache g++
---> Running in 4b0c32551e3f
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
(1/17) Upgrading musl (1.1.18-r2 -> 1.1.18-r3)
(2/17) Installing libgcc (6.4.0-r5)
(3/17) Installing libstdc++ (6.4.0-r5)
(4/17) Installing binutils-libs (2.28-r3)
(5/17) Installing binutils (2.28-r3)
(6/17) Installing gmp (6.1.2-r1)
(7/17) Installing isl (0.18-r0)
(8/17) Installing libgomp (6.4.0-r5)
(9/17) Installing libatomic (6.4.0-r5)
(10/17) Installing pkgconf (1.3.10-r0)
(11/17) Installing mpfr3 (3.1.5-r1)
(12/17) Installing mpc1 (1.0.3-r1)
(13/17) Installing gcc (6.4.0-r5)
(14/17) Installing musl-dev (1.1.18-r3)
(15/17) Installing libc-dev (0.7.1-r0)
(16/17) Installing g++ (6.4.0-r5)
(17/17) Upgrading musl-utils (1.1.18-r2 -> 1.1.18-r3)
Executing busybox-1.27.2-r7.trigger
OK: 184 MiB in 50 packages
Removing intermediate container 4b0c32551e3f
---> be26c3bf4e42
Step 3/3 : RUN pip install pandas
---> Running in 36f6024e5e2d
Collecting pandas
Downloading pandas-0.22.0.tar.gz (11.3MB)
Collecting python-dateutil>=2 (from pandas)
Downloading python_dateutil-2.6.1-py2.py3-none-any.whl (194kB)
Collecting pytz>=2011k (from pandas)
Downloading pytz-2018.3-py2.py3-none-any.whl (509kB)
Collecting numpy>=1.9.0 (from pandas)
Downloading numpy-1.14.1.zip (4.9MB)
Collecting six>=1.5 (from python-dateutil>=2->pandas)
Downloading six-1.11.0-py2.py3-none-any.whl
Building wheels for collected packages: pandas, numpy
Running setup.py bdist_wheel for pandas: started
Running setup.py bdist_wheel for pandas: still running...
Running setup.py bdist_wheel for pandas: still running...
Running setup.py bdist_wheel for pandas: still running...
Running setup.py bdist_wheel for pandas: still running...
Running setup.py bdist_wheel for pandas: still running...
Running setup.py bdist_wheel for pandas: still running...
Running setup.py bdist_wheel for pandas: finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/e8/ed/46/0596b51014f3cc49259e52dff9824e1c6fe352048a2656fc92
Running setup.py bdist_wheel for numpy: started
Running setup.py bdist_wheel for numpy: still running...
Running setup.py bdist_wheel for numpy: still running...
Running setup.py bdist_wheel for numpy: still running...
Running setup.py bdist_wheel for numpy: finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/9d/cd/e1/4d418b16ea662e512349ef193ed9d9ff473af715110798c984
Successfully built pandas numpy
Installing collected packages: six, python-dateutil, pytz, numpy, pandas
Successfully installed numpy-1.14.1 pandas-0.22.0 python-dateutil-2.6.1 pytz-2018.3 six-1.11.0
Removing intermediate container 36f6024e5e2d
---> a93c59e6a106
Successfully built a93c59e6a106
Successfully tagged alpine-pandas:latest
docker build -t alpine-pandas -f Dockerfile.alpine . --no-cache 0.54s user 0.33s system 0% cpu 16:08.47 total
데비안 기반 이미지는 사용만 가능합니다.python pip
패키지를 설치하다.whl
형식:
Downloading pandas-0.22.0-cp36-cp36m-manylinux1_x86_64.whl (26.2MB)
Downloading numpy-1.14.1-cp36-cp36m-manylinux1_x86_64.whl (12.2MB)
WHL 포맷은 매번 소스 코드에서 재구축하는 것보다 파이썬 소프트웨어를 더 빠르고 안정적으로 설치하는 방법으로 개발되었습니다.WHL 파일은 설치할 대상 시스템의 올바른 위치로 이동하기만 하면 되는 반면, 소스 배포에는 설치 전 빌드 단계가 필요합니다.
휠 패키지pandas
그리고.numpy
알파인 플랫폼 기반 이미지에서는 지원되지 않습니다.그래서 우리가 그것들을 설치할 때python pip
빌드 프로세스 동안, 우리는 항상 알파인의 소스 파일로부터 그것들을 컴파일합니다.
Downloading pandas-0.22.0.tar.gz (11.3MB)
Downloading numpy-1.14.1.zip (4.9MB)
이미지를 작성하는 동안 다음과 같은 내부 컨테이너를 볼 수 있습니다.
/ # ps aux
PID USER TIME COMMAND
1 root 0:00 /bin/sh -c pip install pandas
7 root 0:04 {pip} /usr/local/bin/python /usr/local/bin/pip install pandas
21 root 0:07 /usr/local/bin/python -c import setuptools, tokenize;__file__='/tmp/pip-build-en29h0ak/pandas/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n
496 root 0:00 sh
660 root 0:00 /bin/sh -c gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -DTHREAD_STACK_SIZE=0x100000 -fPIC -Ibuild/src.linux-x86_64-3.6/numpy/core/src/pri
661 root 0:00 gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -DTHREAD_STACK_SIZE=0x100000 -fPIC -Ibuild/src.linux-x86_64-3.6/numpy/core/src/private -Inump
662 root 0:00 /usr/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1 -quiet -I build/src.linux-x86_64-3.6/numpy/core/src/private -I numpy/core/include -I build/src.linux-x86_64-3.6/numpy/core/includ
663 root 0:00 ps aux
수정하면Dockerfile
약간의:
FROM python:3.6.4-alpine3.7
RUN apk add --no-cache g++ wget
RUN wget https://pypi.python.org/packages/da/c6/0936bc5814b429fddb5d6252566fe73a3e40372e6ceaf87de3dec1326f28/pandas-0.22.0-cp36-cp36m-manylinux1_x86_64.whl
RUN pip install pandas-0.22.0-cp36-cp36m-manylinux1_x86_64.whl
다음 오류가 발생합니다.
Step 4/4 : RUN pip install pandas-0.22.0-cp36-cp36m-manylinux1_x86_64.whl
---> Running in 0faea63e2bda
pandas-0.22.0-cp36-cp36m-manylinux1_x86_64.whl is not a supported wheel on this platform.
The command '/bin/sh -c pip install pandas-0.22.0-cp36-cp36m-manylinux1_x86_64.whl' returned a non-zero code: 1
안타깝게도 설치할 수 있는 유일한 방법은pandas
알파인 이미지에서는 빌드가 완료될 때까지 기다립니다.
물론 알파인 이미지를 사용하려면pandas
예를 들어 CI에서 가장 좋은 방법은 한 번 컴파일하여 원하는 레지스트리에 푸시하고 필요에 따라 기본 이미지로 사용하는 것입니다.
EDIT: 알파인 이미지를 다음과 같이 사용하려면pandas
제 닉그릭/alpine-pandas 도커 이미지를 뽑아주시면 됩니다.미리 컴파일된 파이썬 이미지입니다.pandas
알파인 승강장에서시간을 절약할 수 있을 겁니다.
답변: 2020년 3월 9일 현재 파이썬 3의 경우 여전히 그렇지 않습니다!
다음은 작동하는 Docker 파일의 전체 내용입니다.
FROM python:3.7-alpine
RUN echo "@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN apk add --update --no-cache py3-numpy py3-pandas@testing
이 빌드는 정확한 파이썬 및 알파인 버전 번호에 매우 민감합니다. 이를 잘못 알고 있으면 Max Levy의 오류를 유발하는 것 같습니다.so:libpython3.7m.so.1.0 (missing)
- 하지만 지금은 위의 것이 저에게 효과가 있습니다.
업데이트된 도커 파일은 https://gist.github.com/jtlz2/b0f4bc07ce2ff04bc193337f2327c13b 에서 확인할 수 있습니다.
[이전 업데이트:]
답변: 그렇지 않습니다!
어떤 Alpine Docker 파일이든 간단히 할 수 있습니다*
RUN apk add py2-numpy@community py2-scipy@community py-pandas@edge
왜냐하면numpy
,scipy
그리고 지금pandas
모두 미리 구축되어 있습니다.alpine
:
https://pkgs.alpinelinux.org/packages?name=*numpy
https://pkgs.alpinelinux.org/packages?name=*scipy&branch=edge
https://pkgs.alpinelinux.org/packages?name=*pandas&branch=edge
매번 재구축하거나 도커 레이어를 사용하는 것을 피할 수 있는 한 가지 방법은 사전 구축된 네이티브 Alpine Linux를 사용하는 것입니다..apk
패키지(package), 예를 들어
https://github.com/sgerrand/alpine-pkg-py-pandas
https://github.com/nbgallery/apks
이것들을 만들 수 있습니다..apk
한 번 사용하여 도커 파일의 원하는 곳 어디에서나 사용 가능 :)
이를 통해 원하는 도커 이미지를 미리 구축할 수 있는 유연성 등 다른 모든 것을 도커 이미지를 만들기 전에 다른 모든 것을 도커 이미지로 구울 필요도 없습니다.
PSI는 이미지를 만드는 방법을 대략적으로 보여주는 Docker 파일 스텁을 https://gist.github.com/jtlz2/b0f4bc07ce2ff04bc193337f2327c13b 에 넣었습니다.여기에는 중요한 단계(*)가 포함됩니다.
RUN echo "@community http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
RUN apk update
RUN apk add --update --no-cache libgfortran
진정한 정직한 조언입니다. 데비안 기반의 이미지로 전환하면 모든 문제가 사라집니다.
파이썬 애플리케이션용 알파인은 잘 작동하지 않습니다.
여기 내 예가 있습니다.dockerfile
:
FROM python:3.7.6-buster
RUN pip install pandas==1.0.0
RUN pip install sklearn
RUN pip install Django==3.0.2
RUN pip install cx_Oracle==7.3.0
RUN pip install excel
RUN pip install djangorestframework==3.11.0
python:3.7.6-buster
이 경우에 더 적합하며, OS에 추가로 의존할 필요가 없습니다.
유용하고 최근에 작성된 기사 https://pythonspeed.com/articles/alpine-docker-python/ 을 참조하십시오.
Python 이미지에 Alpine Linux 사용 안 함 엄청나게 느린 빌드 시간, 더 큰 이미지, 더 많은 작업 및 불분명한 버그의 가능성을 원하지 않는 한 기본 이미지로 Alpine Linux를 사용하지 않기를 원할 것입니다.사용 방법에 대한 몇 가지 권장 사항은 좋은 기본 이미지 선택에 대한 제 기사를 참조하십시오.
이 답변들 중 일부를 하나의 답변에 모아 놓쳤다고 생각되는 세부 사항을 추가할 것입니다.된 수학 및 라이브러리들이 이 오래 로 미리 들에 입니다. 특히 최적화된 수학 및 데이터 라이브러리들이 알파인에 구축되는 데 시간이 오래 걸리는 이유는 이러한 라이브러리들을 위한 파이프 휠들이 c/c++에서 미리 컴파일되고 다음과 연결된 바이너리들을 포함하기 때문입니다.gnu-libc (glibc)
, 일반적인 c 표준 라이브러리 세트Debian, Fedora, CentOS 모두(일반적으로) 사용glibc
, 하지만 알파인은, 가벼운 무게를 유지하기 위해서,musl-libc
대신에. c/c++ 바이너리는 a를 기반으로 합니다.glibc
시스템이 없으면 시스템에서 작동하지 않습니다.glibc
그리고 그것은 마찬가지입니다.musl
.
핍은 먼저 올바른 바이너리가 있는 휠을 찾고, 만약 그 휠을 찾을 수 없다면 c/c++ 소스에서 바이너리를 컴파일하려고 하고 musl과 연결합니다.많은 경우 파이썬 헤더를 가지고 있지 않다면 이것은 심지어 작동하지 않을 것입니다.python3-dev
또는 다음과 같은 도구를 만듭니다.make
.
자, 다른 사람들이 언급한 것처럼, 은빛으로 보이는 것은apk
커뮤니티에서 제공하는 적절한 이진 파일이 포함된 패키지를 사용하면 이진 파일을 구축하는(때로는 긴) 과정을 절약할 수 있습니다.
사실, 순수한 비단뱀으로부터 설치할 수 있습니다..whl
알파인에서, 그러나 이 글을 쓸 당시에, 많은 리눅스는 알파인에 대한 이진 분포를 지원하지 않았습니다.musl/gnu
점.
2022년 10월 업데이트
최신 버전의 python/pip 지원musl
소포를 통해서musllinux
제가 추측하기로는, 제가 생각하기에, 그것은musl
애원하다manylinux
' 지지는 하지만 CUDA에 대한 공식적인 '무슬' 지원은 아직 없습니다.
주의를 기울이기
최신 업데이트와 함께 @jtlz2 답변 보기
시대에 뒤떨어진
따라서 py3-pandas & py3-numpy 패키지가 테스트용 알파인 저장소로 이동하여 다음 행을 도커 파일에 추가하여 다운로드할 수 있습니다.
RUN echo "http://dl-8.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
&& apk update \
&& apk add py3-numpy py3-pandas
누군가에게 도움이 되길 바랍니다!
알파인 저장소는 정보를 저장합니다.
이 경우 알파인은 슬림화를 위한 최적의 용액 변화 알파인이 아닙니다.
From python:3.8.3-알파인
다음 항목으로 변경:
FROM python:3.8.3-slim
제 경우에는 이 작은 변화로 해결되었습니다.
효과가 있었습니다.
FROM python:3.8-alpine
RUN echo "@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN apk add --update --no-cache py3-numpy py3-pandas@testing
ENV PYTHONPATH=/usr/lib/python3.8/site-packages
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5003
ENTRYPOINT [ "python" ]
CMD [ "app.py" ]
여기 있는 대부분의 코드는 이 같은 스레드에서 jtlz2의 답변과 다른 스레드에서 Faylixe의 답변에서 나온 것입니다.
알파인 저장소에서 가벼운 버전의 판다가 발견된 것으로 드러났습니다.py3-numpy
그러나 파이썬이 기본적으로 가져오기를 읽는 위치에서 동일한 파일 경로로 설치되지는 않습니다.따라서 당신은 다음을 추가할 필요가 있습니다.ENV
알파인 에 두시기 바랍니다 또한 알파인 버전을 염두에 두어야 합니다.
몇 가지 추가 변경 사항으로 설치를 해결했습니다.
요구 사항들
- 마이그레이션 대상
python3.8-alpine
.python3.10-alpine
:
docker pull python:3.10-alpine
중요한!
설치할 때는 마이그레이션을 해야 했습니다.
py3-pandas
, 패키지를 다음과 같이 설치했습니다.python3.10
, 제가 사용하던 필수 버전이 아닙니다.python3.8
).패키지의 라이브러리가 설치된 위치를 확인하려면 다음 명령을 사용하여 이를 확인할 수 있습니다.
apk info -L py3-pandas
- 이후 패키지를 설치하지 않음 (요구사항에 조건을 추가해야 함)txt()보다 낮은 버전의 패키지를 설치합니다.
backports.zoneinfo==0.2.1;python_version<"3.9"
설치
이전 변경 후 설치를 진행합니다.panda
다음을 수행합니다.
- 에 3개의 리포지토리를 추가합니다(해당 리포지토리는 배포 버전에 따라 달라질 수 있음). 여기를 참조하십시오.
for x in $(echo "main community testing"); \
do echo "https://dl-cdn.alpinelinux.org/alpine/edge/${x}" >> /etc/apk/repositories; \
done
- 파일의 내용을 확인합니다.
$ cat /etc/apk/repositories
https://dl-cdn.alpinelinux.org/alpine/v3.16/main
https://dl-cdn.alpinelinux.org/alpine/v3.16/community
https://dl-cdn.alpinelinux.org/alpine/edge/main
https://dl-cdn.alpinelinux.org/alpine/edge/community
https://dl-cdn.alpinelinux.org/alpine/edge/testing
- 설치 수행(
pynum
의 종속성으로 자동 설치됩니다.pandas
):
sudo apk update && sudo apk add py3-pandas
- 환경 변수를 설정합니다.
export PYTHONPATH=/usr/lib/python3.10/site-packages/
- 패키지를 가져올 수 있는지 확인합니다(제 경우에는 django로 테스트했습니다).
python manage.py shell
import pandas as pd
import numpy as np
technologies = ['Spark','Pandas','Java','Python', 'PHP']
fee = [25000,20000,15000,15000,18000]
duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days']
discount = [2000,1000,800,500,800]
columns=['Courses','Fee','Duration','Discount']
df = pd.DataFrame(list(zip(technologies,fee,duration,discount)), columns=columns)
print(df)
pandas
커뮤니티 지원 패키지로 간주되므로 다음을 가리키는 답변.edge/testing
알파인이 팬더를 핵심 패키지로 공식적으로 지원하지 않기 때문에 작동하지 않을 것입니다(아직도 작동합니다. 단지 알파인 핵심 개발자들이 지원하지 않을 뿐입니다).
다음 도커 파일을 사용해 보십시오.
FROM python:3.8-alpine
RUN echo "@community http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \
&& apk add py3-pandas@community
ENV PYTHONPATH="/usr/lib/python3.8/site-packages"
이것은 바닐라 알파인 이미지에도 적용됩니다.FROM alpine:3.12
.
업데이트: @cegprakash님께 감사드립니다. 이 설정을 사용할 때 어떻게 해야 하는지에 대한 질문을 해주셔서.requirements.txt
컨테이너 내부에서 충족해야 하는 파일.
도커 파일 스니펫에 한 줄을 추가하여 내보냈습니다.PYTHONPATH
컨테이너 런타임에 변수를 입력합니다.이렇게 하면 그 여부는 중요하지 않을 것입니다.pandas
아니면numpy
요구 사항 파일에 포함되는지 여부(단, 다음을 통해 설치된 버전과 동일한 버전으로 고정되는 경우)apk
).
이것이 필요한 이유는apk
설치합니다.py3-pands@community
아래의 패키지/usr/lib
, 하지만 그 위치는 기본값이 아닙니다.PYTHONPATH
그거pip
를 확인한 후 새 패키지를 설치합니다.이 단계를 추가하지 않으면,pip
그리고.python
소포를 찾지 못할 것이고.pip
아래에서 다운로드 및 설치를 시도할 것입니다./usr/local
그게 우리가 피하려는 겁니다
그리고 우리가 정말로 우리가 원하는 것은pip
설치를 시도하지 않음pandas
, 포함하지 말 것을 제안합니다.pandas
아니면numpy
requirements.txt
파일을 이미 설치한 경우apk
위와 같은 방법으로 일이 진행될 거라는 건 의 추가적인 보험일 뿐입니다.일이 뜻대로 진행될 거라는 건 약간의 추가적인 보험일 뿐입니다.
아래에 나와 있는 다른 의존성들 중에서 팬더를 설치하기 위해 다음 Docker 파일이 제게 도움이 되었습니다.
python:3.10-알파인 도커 파일
# syntax=docker/dockerfile:1
FROM python:3.10-alpine as base
RUN apk add --update --no-cache --virtual .tmp-build-deps \
gcc g++ libc-dev linux-headers postgresql-dev build-base \
&& apk add libffi-dev
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir --upgrade -r requirements.txt
pyproject.toml 종속성
python = "^3.10"
Django = "^3.2.9"
djangorestframework = "^3.12.4"
PyYAML = ">=5.3.0,<6.0.0"
Markdown = "^3.3.6"
uritemplate = "^4.1.1"
install = "^1.3.5"
drf-spectacular = "^0.21.0"
django-extensions = "^3.1.5"
django-filter = "^21.1"
django-cors-headers = "^3.10.1"
httpx = "^0.22.0"
channels = "^3.0.4"
daphne = "^3.0.2"
whitenoise = "^6.2.0"
djoser = "^2.1.0"
channels-redis = "^3.4.0"
pika = "^1.2.1"
backoff = "^2.1.2"
psycopg2-binary = "^2.9.3"
pandas = "^1.5.0"
저도 같은 문제가 있습니다.단순한 변화를 주는 동안
FROM python:3
로.
FROM python:3.10
모든 것이 잘 됩니다.(이것이 도움이 되기를 바랍니다.)
알파인은 팬더를 설치하는데 많은 시간이 걸리고 이미지 크기도 큽니다.python:3.8-slim-bust 버전의 python base image를 사용해 보았습니다.알파인 파이썬 도커(python docker) 이미지에 비해 이미지 빌드 속도가 매우 빨랐고 이미지 크기도 절반 이하였습니다.
https://github.com/dguyhasnoname/k8s-cluster-checker/blob/master/Dockerfile
언급URL : https://stackoverflow.com/questions/49037742/why-does-it-take-ages-to-install-pandas-on-alpine-linux
'programing' 카테고리의 다른 글
상위 항목을 호버링할 때 스타일 하위 요소 (0) | 2023.10.18 |
---|---|
SQL Server에서 행 수준 잠금을 강제할 수 있습니까? (0) | 2023.10.18 |
스크롤하는 동안 이벤트가 실행되지 않는 Jquery.on('스크롤') (0) | 2023.10.18 |
angular ui.router state.go ('statename')이(가) 작동하지 않습니다. (0) | 2023.10.18 |
XML에서 Greater Than Symbol 사용 (0) | 2023.10.18 |