Start working on containerization
This commit is contained in:
35
Dockerfile
Normal file
35
Dockerfile
Normal file
@@ -0,0 +1,35 @@
|
||||
# Use an official Python image as the base
|
||||
FROM python:3.12-slim
|
||||
|
||||
# Install Node.js, npm, and cron
|
||||
RUN apt-get update && apt-get install -y \
|
||||
curl \
|
||||
cron \
|
||||
&& curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
|
||||
&& apt-get install -y nodejs \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Setup backend
|
||||
WORKDIR /app/backend
|
||||
COPY backend/* .
|
||||
|
||||
RUN pip install -r requirements.txt
|
||||
|
||||
# Setup frontend
|
||||
WORKDIR /app/frontend
|
||||
COPY frontend/* .
|
||||
|
||||
# Setup docker
|
||||
WORKDIR /app/docker
|
||||
COPY docker/* /app/docker/
|
||||
|
||||
RUN chmod +x entry.sh
|
||||
RUN chmod 0644 cronfile
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
EXPOSE 5173
|
||||
|
||||
# Command to start cron and the backend
|
||||
CMD ["sh", "-c", "/app/docker/entry.sh"]
|
||||
2
backend/requirements.txt
Normal file
2
backend/requirements.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
requests
|
||||
uvicorn
|
||||
2
docker/crontab
Normal file
2
docker/crontab
Normal file
@@ -0,0 +1,2 @@
|
||||
*/1 * * * * python3 /app/backend/get_notifications.py
|
||||
*/5 * * * * python3 /app/backend/run_scripts.py
|
||||
21
docker/entry.sh
Normal file
21
docker/entry.sh
Normal file
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Navigate to the frontend directory and start the Svelte app
|
||||
cd frontend
|
||||
npm run build
|
||||
npm run dev &
|
||||
|
||||
# Navigate back to the root directory
|
||||
cd ..
|
||||
|
||||
# Setup exec venv
|
||||
cd backend/exec_folder
|
||||
python3 -m venv venv
|
||||
cd ../..
|
||||
|
||||
# Start the backend using uvicorn
|
||||
uvicorn backend.backend:app --host 0.0.0.0 --port 8000 &
|
||||
|
||||
# Start the cron daemon
|
||||
crontab docker/cronfile
|
||||
cron -f
|
||||
Reference in New Issue
Block a user