오류: 도커의 Alpine에 psycopg2를 설치할 때 pg_config 실행 파일을 찾을 수 없습니다.
도커와 함께 Postgres를 사용하여 플라스크 앱을 구축하려고 합니다.Postgres의 AWS RDS 인스턴스에 연결하고 싶지만 플라스크 앱에 도커를 사용합니다.그러나 설정을 시도할 때psycopg2
찾을 수 없기 때문에 오류가 발생합니다.pg_config
오류는 다음과 같습니다.
Building api
Step 1/5 : FROM python:3.6.3-alpine3.6
---> 84c98ca3b5c5
Step 2/5 : WORKDIR /usr/src/app
---> Using cache
---> 407c158f5ee4
Step 3/5 : COPY . .
---> 966df18d329e
Step 4/5 : RUN pip install -r requirements.txt
---> Running in 284cc97aeb63
Collecting aniso8601==1.3.0 (from -r requirements.txt (line 1))
Downloading aniso8601-1.3.0.tar.gz (57kB)
Collecting click==6.7 (from -r requirements.txt (line 2))
Downloading click-6.7-py2.py3-none-any.whl (71kB)
Collecting Flask==0.12.2 (from -r requirements.txt (line 3))
Downloading Flask-0.12.2-py2.py3-none-any.whl (83kB)
Collecting Flask-RESTful==0.3.6 (from -r requirements.txt (line 4))
Downloading Flask_RESTful-0.3.6-py2.py3-none-any.whl
Collecting Flask-SQLAlchemy==2.3.2 (from -r requirements.txt (line 5))
Downloading Flask_SQLAlchemy-2.3.2-py2.py3-none-any.whl
Collecting itsdangerous==0.24 (from -r requirements.txt (line 6))
Downloading itsdangerous-0.24.tar.gz (46kB)
Collecting Jinja2==2.9.6 (from -r requirements.txt (line 7))
Downloading Jinja2-2.9.6-py2.py3-none-any.whl (340kB)
Collecting MarkupSafe==1.0 (from -r requirements.txt (line 8))
Downloading MarkupSafe-1.0.tar.gz
Collecting psycopg2==2.7.3.1 (from -r requirements.txt (line 9))
Downloading psycopg2-2.7.3.1.tar.gz (425kB)
Complete output from command python setup.py egg_info:
running egg_info
creating pip-egg-info/psycopg2.egg-info
writing pip-egg-info/psycopg2.egg-info/PKG-INFO
writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt
writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt
writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'
Error: pg_config executable not found.
Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:
python setup.py build_ext --pg-config /path/to/pg_config build ...
or with the pg_config option in 'setup.cfg'.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-01lf5grh/psycopg2/
ERROR: Service 'api' failed to build: The command '/bin/sh -c pip install -r requirements.txt' returned a non-zero code: 1
여기 내 것Dockerfile
:
FROM python:3.6.3-alpine3.6
WORKDIR /usr/src/app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
다른 많은 지역에서도 비슷한 문제가 있는 것처럼 보이지만 도커 사용과 관련된 문제는 없습니다.로컬 가상 환경을 설정할 수 있고 로컬에 Postgres가 설치되어 있고 로컬을 찾을 수 있기 때문에 설정이 제대로 작동하기 때문에 도커 문제처럼 보입니다.pg_config
.
컨테이너 빌드/설정 중에 도커가 다음을 찾으려고 하는 것 같습니다.pg_config
용기 내에설치할 방법이 있습니까?pg_config
컨테이너에서 Postgres의 컨테이너화된 인스턴스를 사용하지 않고 RDS의 인스턴스를 사용할 것인데도?
이 문제를 해결하는 방법에 대한 모든 제안을 환영합니다.
Python 3.4.8, 3.5.5, 3.6.5 및 2.7.14로 테스트(3을 2로 교체):
# You can use a specific version too, like python:3.6.5-alpine3.7
FROM python:3-alpine
WORKDIR /usr/src/app
COPY requirements.txt .
RUN \
apk add --no-cache postgresql-libs && \
apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev && \
python3 -m pip install -r requirements.txt --no-cache-dir && \
apk --purge del .build-deps
COPY . .
CMD ["python3", "app.py"]
설명: 싸이캅을 구축하려면 패키지가 필요합니다.gcc musl-dev postgresql-dev
그런 다음 pg_config 실행 파일도 필요합니다. 단순히 설치하는 동안postgresql-dev
효과가 있을 겁니다postgresql-libs
12MB 정도 공간을 적게 차지합니다.
다음은 Python이 Python 3.6 및 Alpine 3.7과 함께 Docker 이미지를 제공하지 않았기 때문에 Python을 순수 Alpine 이미지에 수동으로 설치하는 답변의 원래 버전입니다(이 Docker 파일을 기반으로 합니다.만약 당신이 그렇게 파이썬 2.7을 설치하고 싶다면, 또한.apk add py2-pip
(호출)py-pip
이전 Alpine repos에서)
FROM alpine:3.7
WORKDIR /usr/src/app
COPY requirements.txt .
RUN \
apk add --no-cache python3 postgresql-libs && \
apk add --no-cache --virtual .build-deps gcc python3-dev musl-dev postgresql-dev && \
python3 -m pip install -r requirements.txt --no-cache-dir && \
apk --purge del .build-deps
COPY . .
CMD ["python3", "app.py"]
종속성을 설치하기 전에 이러한 명령(사이코그2 종속성)을 추가하기만 하면 됩니다.requirements.txt
도커 파일에
# install psycopg2 dependencies
RUN apk update
RUN apk add postgresql-dev gcc python3-dev musl-dev
출처: https://testdriven.io/blog/dockerizing-django-with-postgres-gunicorn-and-nginx/
이 문제를 해결하기 위해 Docker 파일에 다음을 추가했습니다.
RUN apt-get update \
&& apt-get -y install libpq-dev gcc \
&& pip install psycopg2
이것은 사이코그2 의존성을 설치할 것입니다.
시도해 볼 수 있습니다.
pip install psycopg2-binary
Python 3에서는 다음을 수행하기만 하면 됩니다.
sudo apt install libpq-dev python3-dev
언급URL : https://stackoverflow.com/questions/46711990/error-pg-config-executable-not-found-when-installing-psycopg2-on-alpine-in-dock
'it-source' 카테고리의 다른 글
Swift에서 보기의 모든 하위 보기를 제거하는 방법은 무엇입니까? (0) | 2023.05.06 |
---|---|
조쉬 스미스의 릴레이 명령 이행에 결함이 있습니까? (0) | 2023.05.06 |
두 로컬 분기 Git 병합 (0) | 2023.05.01 |
Angular에서 템플릿 HTML 블록을 재사용하는 방법은 무엇입니까? (0) | 2023.05.01 |
UI 텍스트 필드의 시작 부분에 공백 만들기 (0) | 2023.05.01 |