几个小时以来我一直被这个问题困扰。我正在尝试通过我的 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'
可能是缓存问题。
请奔跑
docker-compose build --no-cache
docker-compose up