Update dockerfile

This commit is contained in:
Sami Abuzakuk
2025-10-12 17:09:35 +02:00
parent a6f93edf72
commit f73c66c1a1
6 changed files with 27 additions and 22 deletions

View File

@@ -5,31 +5,28 @@ FROM python:3.12-slim
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
curl \ curl \
cron \ cron \
&& curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \ && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs \ && apt-get install -y nodejs \
&& apt-get clean \ && apt-get clean \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Setup backend # Setup backend
WORKDIR /app/backend WORKDIR /app/backend
COPY backend/* . ADD backend .
RUN python3 -m venv venv
RUN . /app/backend/venv/bin/activate && pip install -r requirements.txt
RUN pip install -r requirements.txt
# Setup frontend
WORKDIR /app/frontend WORKDIR /app/frontend
COPY frontend/* . ADD frontend .
# Setup docker
WORKDIR /app/docker
COPY docker/* /app/docker/
RUN chmod +x entry.sh
RUN chmod 0644 cronfile
WORKDIR /app WORKDIR /app
EXPOSE 5173 COPY docker/* .
RUN chmod 0644 services.cron
RUN crontab services.cron
RUN chmod +x entry.sh
EXPOSE 8080 8000
# Command to start cron and the backend # Command to start cron and the backend
CMD ["sh", "-c", "/app/docker/entry.sh"] CMD ["sh", "-c", "/app/entry.sh"]

View File

@@ -1,2 +1,4 @@
requests requests
uvicorn uvicorn
fastapi
sqlalchemy

View File

@@ -1,2 +0,0 @@
*/1 * * * * python3 /app/backend/get_notifications.py
*/5 * * * * python3 /app/backend/run_scripts.py

View File

@@ -1,9 +1,12 @@
#!/bin/bash #!/bin/bash
# Navigate to the frontend directory and start the Svelte app source /app/backend/venv/bin/activate
# Navigate to the frontend directory, install dependencies, and start the Svelte app
cd frontend cd frontend
npm install
npm run build npm run build
npm run dev & npm run dev -- --host 0.0.0.0 --port 8080 &
# Navigate back to the root directory # Navigate back to the root directory
cd .. cd ..
@@ -14,8 +17,9 @@ python3 -m venv venv
cd ../.. cd ../..
# Start the backend using uvicorn # Start the backend using uvicorn
uvicorn backend.backend:app --host 0.0.0.0 --port 8000 & cd backend
uvicorn backend:app --host 0.0.0.0 --port 8000 &
cd ..
# Start the cron daemon # Start the cron daemon
crontab docker/cronfile
cron -f cron -f

2
docker/services.cron Normal file
View File

@@ -0,0 +1,2 @@
*/1 * * * * . /app/backend/venv/bin/activate && python3 /app/backend/get_notifications.py >> /var/log/cron.log 2>&1
*/5 * * * * cd /app/backend && . /app/backend/venv/bin/activate && python3 /app/backend/run_scripts.py >> /var/log/cron.log 2>&1

View File

@@ -1,4 +1,6 @@
export const API_URL = 'http://127.0.0.1:8000'; import { env } from '$env/dynamic/public';
export const API_URL = env.PUBLIC_API_URL || 'http://localhost:8080';
/** /**
* Type definitions for Subscriptions and Notifications * Type definitions for Subscriptions and Notifications