安装 pip 要求时 Docker 太慢了

dip*_*esh 3 python django docker dockerfile docker-compose

我正在尝试为一个虚拟的本地 Django 项目实现一个 docker。我docker-compose用作定义和运行多个容器的工具。在这里,我尝试将Django-web-appPostgreSQL两个服务容器化。

中使用的配置Dockerfiledocker-compose.yml

文件

# Pull base image
FROM python:3.7-alpine

# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# Set work directory
WORKDIR /code

# Install dependencies
COPY requirements.txt /code/
RUN pip install -r requirements.txt

# Copy project
COPY . /code/
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml

version: '3.7'

services:
    web:
        build: .
        command: python manage.py runserver 0.0.0.0:8000
        volumes: 
            - .:/code
        ports:
            - "8000:8000"
        depends_on:
            - db
    db:
        image: postgres:11
        volumes:
            - postgres_data:/var/lib/postgresql/data/
volumes:
    postgres_data:

Run Code Online (Sandbox Code Playgroud)

一切似乎都好。路径 postgres 集成和所有除了一件事pip install -r requirements.txt。根据要求进行安装需要花费太多时间。上次我放弃了这个,但最后安装确实完成了,但需要很多时间才能完成。

在我的情况下,唯一的问题是为什么pip install 这么慢。如果有什么我想念的吗?我是 docker 的新手,对此主题的任何帮助将不胜感激。谢谢你。

我正在关注此链接

nev*_*ner 16

可能这是因为 PyPI 轮子在 Alpine 上不起作用。Alpine 下载源代码并编译它,而不是使用预编译文件。尝试使用python:3.7-slim图像代替:

# Pull base image
FROM python:3.7-slim

# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# Set work directory
WORKDIR /code

# Install dependencies
COPY requirements.txt /code/
RUN pip install -r requirements.txt

# Copy project
COPY . /code/
Run Code Online (Sandbox Code Playgroud)

查看这篇文章了解更多详细信息:Alpine 使 Python Docker 构建速度降低 50 倍

  • `python:3.7-slim` 很快:)。我无法使用“python:3.7-slim”和“python:3.7-alpine”安装“psycopg2”。有什么办法可以解决这个问题吗?或者我错过了什么? (2认同)
  • @dipesh可能你忘记安装一些东西检查这个例子:https://www.rockyourcode.com/install-psycopg2-binary-with-docker/ (2认同)