chrisgl21 commited on
Commit
7bf2d68
·
verified ·
1 Parent(s): a1e6493

Upload 4 files

Browse files
Files changed (4) hide show
  1. Dockerfile +8 -6
  2. docker-compose.yaml +12 -0
  3. requirements.txt +4 -5
  4. streamlit_app.py +21 -0
Dockerfile CHANGED
@@ -1,11 +1,13 @@
1
  FROM python:3.9-slim
2
  EXPOSE 8501
3
  WORKDIR /app
 
4
  RUN apt-get update && apt-get install -y \
5
- build-essential \
6
- software-properties-common \
7
- git \
8
  && rm -rf /var/lib/apt/lists/*
9
- COPY . /app
10
- RUN pip3 install -r requirements.txt
11
- ENTRYPOINT ["streamlit", "run", "streamlit.py", "--server.port=8501", "--server.address=0.0.0.0"]
 
 
1
  FROM python:3.9-slim
2
  EXPOSE 8501
3
  WORKDIR /app
4
+ COPY . .
5
  RUN apt-get update && apt-get install -y \
6
+ python3-tk \
7
+ libgl1-mesa-glx \
8
+ libglib2.0-0 \
9
  && rm -rf /var/lib/apt/lists/*
10
+ RUN pip3 install --no-cache-dir -r requirements.txt
11
+ ENV MPLBACKEND=Agg
12
+ # RUN pip3 install -r requirements.txt
13
+ ENTRYPOINT ["streamlit", "run", "streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]
docker-compose.yaml ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ services:
2
+ streamlit:
3
+ build:
4
+ dockerfile: Dockerfile
5
+ context: .
6
+ container_name: streamlit-app
7
+ cpus: 0.5
8
+ mem_limit: 1024m
9
+ ports:
10
+ - "8501:8501"
11
+ volumes:
12
+ - ".:/app:rw"
requirements.txt CHANGED
@@ -1,7 +1,6 @@
1
- altair
2
- polars
3
  pandas
 
4
  streamlit
5
- scikit-learn
6
- numpy
7
- plotly
 
 
 
1
  pandas
2
+ polars
3
  streamlit
4
+ plotly
5
+ requests
6
+ matplotlib
streamlit_app.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+ st.sidebar.title("Navigation")
4
+ page = st.sidebar.radio(
5
+ "Select a Page",
6
+ ["Single Location Weather",
7
+ "Compare Locations & KPIs",
8
+ "Variable Selection & Timezone",
9
+ "Summary Metrics Across Cities"]
10
+ )
11
+
12
+ if page == "Single Location Weather":
13
+ from pages.single_location import main
14
+ elif page == "Compare Locations & KPIs":
15
+ from pages.compare_locations import main
16
+ elif page == "Variable Selection & Timezone":
17
+ from pages.variable_selection import main
18
+ elif page == "Summary Metrics Across Cities":
19
+ from pages.summary_metrics import main
20
+
21
+ main()