RUN pip install 在 Dockerfile 中不起作用

问题描述 投票:0回答:1

几个小时以来我一直被这个问题困扰。我正在尝试通过我的 Dockerfile 安装 psycopg2-binary:

FROM jupyter/pyspark-notebook:latest

RUN pip install psycopg2-binary

COPY Spark.py /app/Spark.py

COPY postgres-jdbc-driver.jar /app/postgres-jdbc-driver.jar
ENV SPARK_CLASSPATH=/app/postgres-jdbc-driver.jar


CMD ["python", "/app/Spark.py"]

但它不安装它。当我查看我的 docker 容器“pip list”时,我没有看到那里的包。知道为什么吗?当我手动将其安装到我的 docker“pip install psycopg2-binary”时,它正在工作。

这是我的 Dockercompose 文件

  jupyter-pyspark-notebook:
    build:
      context: .  
      dockerfile: ./DockerfileSpark  
    hostname: jupyter-pyspark-notebook
    container_name: jupyter-pyspark-notebook
    ports:
      - "8888:8888"
    restart: always
    volumes:
      - ./Spark.py:/app/Spark.py
    command: sh -c "sleep 40 && python /app/Spark.py"

这是我收到的错误,这是有道理的,因为容器中没有安装 psycopg2-binary。但为什么不安装。我不知道...

File "/app/Spark.py", line 3, in <module>
2023-10-31 11:46:22     import psycopg2
2023-10-31 11:46:22 ModuleNotFoundError: No module named 'psycopg2'
python docker docker-compose dockerfile psycopg2
1个回答
0
投票

可能是缓存问题。

请奔跑

docker-compose build --no-cache
docker-compose up
© www.soinside.com 2019 - 2024. All rights reserved.