| | |
| | FROM jupyter/base-notebook:latest |
| |
|
| | |
| | USER root |
| |
|
| | |
| | RUN apt-get update && \ |
| | apt-get install -y --no-install-recommends openjdk-17-jdk curl ca-certificates wget && \ |
| | apt-get clean && rm -rf /var/lib/apt/lists/* |
| |
|
| | ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 |
| | ENV PATH=$JAVA_HOME/bin:$PATH |
| |
|
| | |
| | ENV SPARK_VERSION=3.5.0 |
| | ENV SPARK_DIST=spark-${SPARK_VERSION}-bin-hadoop3 |
| | ENV SPARK_URL=https://archive.apache.org/dist/spark/spark-${SPARK_VERSION}/${SPARK_DIST}.tgz |
| |
|
| | RUN curl -L -o /tmp/spark.tgz "${SPARK_URL}" && \ |
| | tar -xzf /tmp/spark.tgz -C /usr/local/ && \ |
| | rm /tmp/spark.tgz && \ |
| | mv /usr/local/${SPARK_DIST} /usr/local/spark |
| |
|
| | |
| | ENV SPARK_HOME=/usr/local/spark |
| | ENV PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$JAVA_HOME/bin:$PATH |
| | ENV PYSPARK_PYTHON=python3 |
| | |
| | ENV PYTHONPATH=$SPARK_HOME/python/:$SPARK_HOME/python/lib/py4j-0.10.9.7-src.zip:$PYTHONPATH |
| |
|
| | |
| | |
| | |
| | RUN pip install --no-cache-dir pandas matplotlib findspark ipykernel jupyterlab |
| |
|
| | |
| | RUN mkdir -p /home/jovyan/.local/share/jupyter/runtime && \ |
| | chown -R 1000:100 /home/jovyan && \ |
| | chmod -R 777 /home/jovyan |
| |
|
| | |
| | RUN mkdir -p /workspace/spark_logs/kernel1 /workspace/spark_logs/kernel2 && \ |
| | chmod -R 777 /workspace |
| | WORKDIR /workspace |
| |
|
| | |
| | RUN mkdir -p /usr/local/share/jupyter/kernels/spark_kernel1 && \ |
| | mkdir -p /usr/local/share/jupyter/kernels/spark_kernel2 |
| |
|
| | |
| | RUN cat > /usr/local/share/jupyter/kernels/spark_kernel1/kernel.json <<'JSON' |
| | { |
| | "argv": ["python3", "-m", "ipykernel_launcher", "-f", "{connection_file}"], |
| | "display_name": "Spark Kernel 1", |
| | "language": "python", |
| | "env": { |
| | "JAVA_HOME": "/usr/lib/jvm/java-17-openjdk-amd64", |
| | "SPARK_HOME": "/usr/local/spark", |
| | "PYSPARK_PYTHON": "python3", |
| | "SPARK_LOG_DIR": "/workspace/spark_logs/kernel1", |
| | "SPARK_LOCAL_DIRS": "/workspace/spark_logs/kernel1", |
| | "PYTHONPATH": "/usr/local/spark/python/:/usr/local/spark/python/lib/py4j-0.10.9.7-src.zip" |
| | } |
| | } |
| | JSON |
| |
|
| | |
| | RUN cat > /usr/local/share/jupyter/kernels/spark_kernel2/kernel.json <<'JSON' |
| | { |
| | "argv": ["python3", "-m", "ipykernel_launcher", "-f", "{connection_file}"], |
| | "display_name": "Spark Kernel 2", |
| | "language": "python", |
| | "env": { |
| | "JAVA_HOME": "/usr/lib/jvm/java-17-openjdk-amd64", |
| | "SPARK_HOME": "/usr/local/spark", |
| | "PYSPARK_PYTHON": "python3", |
| | "SPARK_LOG_DIR": "/workspace/spark_logs/kernel2", |
| | "SPARK_LOCAL_DIRS": "/workspace/spark_logs/kernel2", |
| | "PYTHONPATH": "/usr/local/spark/python/:/usr/local/spark/python/lib/py4j-0.10.9.7-src.zip" |
| | } |
| | } |
| | JSON |
| |
|
| | |
| | USER jovyan |
| |
|
| | |
| | EXPOSE 7860 |
| |
|
| | |
| | |
| | CMD ["bash", "-c", "echo 'JupyterLab berjalan di port 7860' && jupyter lab --ip=0.0.0.0 --port=7860 --no-browser --ServerApp.token='' --ServerApp.password='' --NotebookApp.token='' --NotebookApp.password='' --LabApp.default_url=/lab"] |
| |
|