PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Lỗi:không tìm thấy tệp thi hành pg_config khi cài đặt psycopg2 trên Alpine trong Docker

Đã thử nghiệm với Python 3.4.8, 3.5.5, 3.6.5 và 2.7.14 (chỉ cần thay 3 bằng 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"]

Giải thích:để xây dựng Psycopg, bạn cần các gói gcc musl-dev postgresql-dev . Sau đó, bạn cũng cần tệp thực thi pg_config đó:trong khi chỉ cần cài đặt postgresql-dev sẽ hoạt động, postgresql-libs cũng tốt và chiếm ít dung lượng hơn 12 MB.

Đây là phiên bản gốc của câu trả lời (dựa trên Dockerfile này) trong đó tôi cài đặt Python theo cách thủ công vào hình ảnh Alpine thuần túy vì tại thời điểm đó Python không cung cấp hình ảnh Docker với Python 3.6 và Alpine 3.7. Nếu bạn muốn cài đặt Python 2.7 như vậy, hãy thực hiện apk add py2-pip (được gọi là py-pip trong các đại diện Alpine cũ hơn).

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"]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LỖI trong Java SQL:Tên_bảng mối quan hệ không tồn tại

  2. Postgres - FATAL:tệp cơ sở dữ liệu không tương thích với máy chủ

  3. PostgreSQL INSERT ON CONFLICT UPDATE (upert) sử dụng tất cả các giá trị bị loại trừ

  4. Django JSONField bên trong ArrayField

  5. SQLAlchemy hay psycopg2?