Mandr1 commited on
Commit
1ad8acc
·
verified ·
1 Parent(s): 0aab21a

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +37 -0
Dockerfile ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Gunakan base image resmi dari Jupyter
2
+ FROM jupyter/base-notebook:latest
3
+ # Jalankan sebagai root hanya untuk instalasi
4
+ USER root
5
+ # ===== Install Java 17 =====
6
+ RUN apt-get update && apt-get install -y openjdk-17-jdk curl && apt-get clean
7
+ ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
8
+ ENV PATH=$JAVA_HOME/bin:$PATH
9
+ # ===== Install Apache Spark =====
10
+ RUN curl -L https://archive.apache.org/dist/spark/spark-3.5.0/spark-3.5.0-bin-hadoop3.tgz \
11
+ | tar -xz -C /usr/local/ && mv /usr/local/spark-3.5.0-bin-hadoop3 /usr/local/spark
12
+ ENV SPARK_HOME=/usr/local/spark
13
+ ENV PATH=$SPARK_HOME/bin:$PATH
14
+ ENV PYSPARK_PYTHON=python3
15
+ # ===== Install Python package =====
16
+ RUN pip install --no-cache-dir pyspark pandas matplotlib findspark ipykernel
17
+ # ===== Perbaiki izin direktori home Jupyter =====
18
+ RUN mkdir -p /home/jovyan/.local/share/jupyter/runtime && \
19
+ chown -R 1000:100 /home/jovyan && \
20
+ chmod -R 777 /home/jovyan
21
+ # ===== Buat dua kernel Spark =====
22
+ RUN python -m ipykernel install --user --name spark_kernel1 --display-name "Spark Kernel 1" && \
23
+ python -m ipykernel install --user --name spark_kernel2 --display-name "Spark Kernel 2"
24
+ # ===== Direktori kerja =====
25
+ WORKDIR /workspace
26
+ RUN chmod -R 777 /workspace
27
+
28
+ # ===== Ubah kembali ke user default Jupyter =====
29
+ USER jovyan
30
+ # ===== Port Hugging Face (7860) =====
31
+ EXPOSE 7860
32
+ # ===== Jalankan Jupyter di port 7860 =====
33
+ CMD ["bash", "-c", "\
34
+ echo ' JupyterLab berjalan di Hugging Face Spaces pada port 7860' && \
35
+ jupyter lab --ip=0.0.0.0 --port=7860 --no-browser --allow-root \
36
+ --NotebookApp.token='' --NotebookApp.password='' --NotebookApp.default_url=/lab \
37
+ "]