|
17 | 17 | # under the License. |
18 | 18 | # |
19 | 19 |
|
20 | | -FROM jupyter/all-spark-notebook:spark-3.5.0 |
| 20 | +FROM docker.io/apache/spark:3.5.6-java17 |
21 | 21 |
|
22 | | -ENV LANGUAGE='en_US:en' |
| 22 | +ENV PYTHONPATH="${SPARK_HOME}/python/:${SPARK_HOME}/python/lib/py4j-0.10.9.7-src.zip:/home/spark/venv/lib/python3.10/site-packages" |
| 23 | +ENV PYSPARK_PYTHON=/home/spark/venv/bin/python |
23 | 24 |
|
24 | 25 | USER root |
25 | 26 |
|
26 | | -# Generic table support requires delta 3.2.1 |
27 | | -# Install Spark 3.5.6 |
28 | | -RUN wget -q https://www.apache.org/dyn/closer.lua/spark/spark-3.5.6/spark-3.5.6-bin-hadoop3.tgz?action=download \ |
29 | | - && tar -xzf spark-3.5.6-bin-hadoop3.tgz \ |
30 | | - && mv spark-3.5.6-bin-hadoop3 /opt/spark \ |
31 | | - && rm spark-3.5.6-bin-hadoop3.tgz |
| 27 | +RUN apt-get update -y && \ |
| 28 | + apt-get install -y python3-venv && \ |
| 29 | + mkdir -p /home/spark && \ |
| 30 | + chown -R spark /home/spark |
32 | 31 |
|
33 | | -# Set environment variables |
34 | | -ENV SPARK_HOME=/opt/spark |
35 | | -ENV PATH=$SPARK_HOME/bin:$PATH |
| 32 | +USER spark |
36 | 33 |
|
37 | | -USER jovyan |
| 34 | +WORKDIR /home/spark |
38 | 35 |
|
39 | | -COPY --chown=jovyan client /home/jovyan/client |
40 | | -COPY --chown=jovyan regtests/requirements.txt /tmp |
41 | | -COPY --chown=jovyan plugins/spark/v3.5/spark/build/2.12/libs /home/jovyan/polaris_libs |
42 | | -RUN pip install -r /tmp/requirements.txt |
43 | | -RUN cd client/python && poetry lock && \ |
44 | | - python3 -m poetry install && \ |
45 | | - pip install -e . |
| 36 | +COPY --chown=spark client /home/spark/client |
| 37 | +COPY --chown=spark plugins/spark/v3.5/getting-started/notebooks/requirements.txt /tmp/notebook_requirements.txt |
| 38 | +COPY --chown=spark regtests/requirements.txt /tmp |
| 39 | +COPY --chown=spark plugins/spark/v3.5/spark/build/2.12/libs /home/spark/polaris_libs |
46 | 40 |
|
47 | | -WORKDIR /home/jovyan/ |
| 41 | +SHELL ["/bin/bash", "-c"] |
| 42 | + |
| 43 | +RUN python3 -m venv /home/spark/venv && \ |
| 44 | + source /home/spark/venv/bin/activate && \ |
| 45 | + pip install -r /tmp/requirements.txt -r /tmp/notebook_requirements.txt && \ |
| 46 | + cd client/python && \ |
| 47 | + poetry lock && \ |
| 48 | + poetry install --all-extras |
| 49 | + |
| 50 | +EXPOSE 8888 |
| 51 | +CMD ["/home/spark/venv/bin/jupyter", "lab", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--NotebookApp.token=''"] |
0 commit comments