From 2d947cccc38cb24877e1e2e1eb7034c1bf9bbd04 Mon Sep 17 00:00:00 2001 From: Marcin-Ramotowski Date: Thu, 17 Apr 2025 22:10:21 +0000 Subject: [PATCH] Configured Docker evironment for frontend --- Dockerfile => api/api.dockerfile | 2 +- docker-compose.yml | 28 +++++++++++++++++++++++++++- frontend/frontend.dockerfile | 15 +++++++++++++++ frontend/nginx.conf | 11 +++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) rename Dockerfile => api/api.dockerfile (90%) create mode 100644 frontend/frontend.dockerfile create mode 100644 frontend/nginx.conf diff --git a/Dockerfile b/api/api.dockerfile similarity index 90% rename from Dockerfile rename to api/api.dockerfile index 0ddb7aa..3917e93 100644 --- a/Dockerfile +++ b/api/api.dockerfile @@ -1,6 +1,6 @@ FROM python:3.11.7-alpine WORKDIR /app -COPY api . +COPY . . RUN pip install -r requirements.txt EXPOSE 80 CMD ["python3", "app.py"] diff --git a/docker-compose.yml b/docker-compose.yml index 13ecb59..0a58075 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,17 +1,43 @@ services: + frontend: + container_name: frontend + hostname: frontend + restart: unless-stopped + depends_on: + - api + build: + context: frontend + dockerfile: frontend.dockerfile + networks: + - default + ports: + - 5173:80 + api: container_name: todo-api hostname: todo-api + restart: unless-stopped depends_on: - db - build: . + build: + context: api + dockerfile: api.dockerfile + #environment: + #- SQLALCHEMY_DATABASE_URI= + #- FRONTEND_ORIGIN= networks: - default + ports: + - 5000:80 db: container_name: db hostname: db image: mysql:latest + #environment: + #- MYSQL_USER= + #- MYSQL_PASSWORD= + #- MYSQL_DATABASE= networks: - default diff --git a/frontend/frontend.dockerfile b/frontend/frontend.dockerfile new file mode 100644 index 0000000..5c0601d --- /dev/null +++ b/frontend/frontend.dockerfile @@ -0,0 +1,15 @@ +# Etap 1: Build +FROM node:20 AS builder +WORKDIR /app +COPY package*.json ./ +RUN npm install +COPY . . +RUN npm run build + +# Etap 2: Nginx +FROM nginx:alpine +COPY --from=builder /app/dist /usr/share/nginx/html +COPY nginx.conf /etc/nginx/conf.d/default.conf + +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] diff --git a/frontend/nginx.conf b/frontend/nginx.conf new file mode 100644 index 0000000..cbb6356 --- /dev/null +++ b/frontend/nginx.conf @@ -0,0 +1,11 @@ +server { + listen 80; + server_name localhost; + + root /usr/share/nginx/html; + index index.html; + + location / { + try_files $uri $uri/ /index.html; + } +}