From fe91fb6b1cf648edfcb8106902df398508d29bb9 Mon Sep 17 00:00:00 2001 From: Parsa Nazer Date: Thu, 5 Dec 2024 14:32:06 +0330 Subject: [PATCH] docker compose file and dockerfile --- backend/dockerfile | 14 ++++++++++++++ docker-compose.yml | 39 +++++++++++++++++++++++++++++++++++++++ frontend/dockerfile | 13 +++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 backend/dockerfile create mode 100644 docker-compose.yml create mode 100644 frontend/dockerfile diff --git a/backend/dockerfile b/backend/dockerfile new file mode 100644 index 0000000..8852b5f --- /dev/null +++ b/backend/dockerfile @@ -0,0 +1,14 @@ +FROM python:3.12-slim + +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + +WORKDIR /app + +COPY requirements.txt /app/ +RUN pip install --no-cache-dir -r requirements.txt + +COPY . /app/ + + +CMD ["sh", "-c", "python manage.py migrate && python manage.py runserver 0.0.0.0:8000"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..8d8b898 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,39 @@ +services: + frontend: + build: + context: ./frontend + ports: + - "80:3000" + depends_on: + - django + + django: + build: + context: ./backend + ports: + - "8000:8000" + depends_on: + - db + volumes: + - ./backend:/app + - media_data:/app/media + command: ["sh", "-c", "python manage.py migrate && python manage.py runserver 0.0.0.0:8000"] + + + db: + image: postgres:16 + environment: + POSTGRES_DB: shop_db + POSTGRES_USER: byeto + POSTGRES_PASSWORD: vuhbyq-cypMu0-sirbon + volumes: + - postgres_data:/var/lib/postgresql/data + ports: + - "5434:5432" + + +volumes: + postgres_data: + media_data: + + diff --git a/frontend/dockerfile b/frontend/dockerfile new file mode 100644 index 0000000..52d9096 --- /dev/null +++ b/frontend/dockerfile @@ -0,0 +1,13 @@ +FROM node:20-alpine as build-stage +WORKDIR /app +COPY package*.json ./ +RUN npm install +COPY . . +RUN npm run build + +FROM node:20-alpine as production-stage +WORKDIR /app +COPY --from=build-stage /app /app +EXPOSE 3000 +ENV NODE_ENV=production +CMD ["npm", "run", "start"] \ No newline at end of file