diff --git a/backend/.dockerignore b/backend/.dockerignore new file mode 100644 index 0000000..bd95cf6 --- /dev/null +++ b/backend/.dockerignore @@ -0,0 +1,9 @@ +__pycache__/ +*.pyc +*.pyo +*.pyd +data.db +migrations/ +.env +.flaskenv +.git diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..8aec054 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,20 @@ +FROM python:3.11-slim + +ENV PYTHONUNBUFFERED=1 + +WORKDIR /app + +# RUN apt-get update && apt-get install -y \ +# gcc \ +# libpq-dev \ +# && rm -rf /var/lib/apt/lists/* + +COPY requirements.txt . + +RUN pip install --no-cache-dir -r requirements.txt + +COPY . . + +EXPOSE 5000 + +CMD ["python", "application.py"] \ No newline at end of file diff --git a/backend/application.py b/backend/application.py index 999b4d7..ce52467 100644 --- a/backend/application.py +++ b/backend/application.py @@ -1,3 +1,14 @@ from flaskr import create_app app = create_app() + +# for rule in app.url_map.iter_rules(): +# print(rule) + +@app.route("/") +def index(): + return {"message": "Welcome to Todo App API"} + +if __name__ == "__main__": + # 0.0.0.0 makes Flask accessible outside the container + app.run(host="0.0.0.0", port=5000, debug=True) \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c8c779d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,29 @@ +version: "3.9" + +services: + backend: + build: + context: ./backend + container_name: flask-backend + ports: + - "5000:5000" + volumes: + - ./backend:/app + environment: + FLASK_ENV: development + JWT_SECRET_KEY: super-secret + SECRET_KEY: super-secret + restart: always + + frontend: + build: + context: ./frontend + container_name: react-frontend + ports: + - "5173:5173" + volumes: + - ./frontend:/app + - /app/node_modules + depends_on: + - backend + restart: always diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..a21f178 --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1,3 @@ +node_modules +dist +.git diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..1303958 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,13 @@ +FROM node:20 + +WORKDIR /app + +COPY package*.json ./ + +RUN npm install + +COPY . . + +EXPOSE 5173 + +CMD [ "npm", "run", "dev", "--", "--host" ] \ No newline at end of file