From 268b4dee1808979268853ab937ec8fd63f84afd2 Mon Sep 17 00:00:00 2001 From: rxf Date: Sun, 23 Nov 2025 12:28:41 +0100 Subject: [PATCH] nochmal, nun alles docker-zeugs dabei --- backend/.env.docker | 3 +++ backend/Dockerfile | 18 ++++++++++++++++ backend/docker-compose.yml | 43 +++++++++++++++++++++++++++++++++++++- frontend/.dockerignore | 5 +++++ frontend/Dockerfile | 18 ++++++++++++++++ frontend/package.json | 3 ++- frontend/src/App.jsx | 1 + frontend/vite.config.js | 7 +++++++ 8 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 backend/.env.docker create mode 100644 backend/Dockerfile create mode 100644 frontend/.dockerignore create mode 100644 frontend/Dockerfile diff --git a/backend/.env.docker b/backend/.env.docker new file mode 100644 index 0000000..250858b --- /dev/null +++ b/backend/.env.docker @@ -0,0 +1,3 @@ +# Environment variables for Docker Compose +MONGO_ROOT_USER=root +MONGO_ROOT_PASSWD=SFluorit diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..0cdc382 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,18 @@ +FROM node:20-alpine + +WORKDIR /app + +# Copy package files +COPY package*.json ./ + +# Install dependencies +RUN npm ci + +# Copy source code +COPY . . + +# Expose the application port +EXPOSE 3001 + +# Start the application +CMD ["npm", "run", "dev"] diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml index 6446c3b..6eb9eba 100644 --- a/backend/docker-compose.yml +++ b/backend/docker-compose.yml @@ -12,7 +12,48 @@ services: volumes: - mongodb_data:/data/db - mongodb_config:/data/configdb + networks: + - app-network + + backend: + build: + context: . + dockerfile: Dockerfile + container_name: backend + restart: unless-stopped + ports: + - "3001:3001" + environment: + - PORT=3001 + - MONGO_URI=mongodb://${MONGO_ROOT_USER}:${MONGO_ROOT_PASSWD}@mongodb:27017/appointmentsdb?authSource=admin + depends_on: + - mongodb + volumes: + - ./src:/app/src + - ./package.json:/app/package.json + networks: + - app-network + + frontend: + build: + context: ../frontend + dockerfile: Dockerfile + container_name: frontend + restart: unless-stopped + ports: + - "5173:5173" + depends_on: + - backend + volumes: + - ../frontend/src:/app/src + - ../frontend/package.json:/app/package.json + networks: + - app-network volumes: mongodb_data: - mongodb_config: \ No newline at end of file + mongodb_config: + +networks: + app-network: + driver: bridge \ No newline at end of file diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..009e6df --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1,5 @@ +node_modules +npm-debug.log +dist +.git +.gitignore diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..41c4e51 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,18 @@ +FROM node:20-alpine + +WORKDIR /app + +# Copy package files +COPY package*.json ./ + +# Install dependencies +RUN npm ci + +# Copy source code +COPY . . + +# Expose Vite dev server port +EXPOSE 5173 + +# Start Vite dev server +CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"] diff --git a/frontend/package.json b/frontend/package.json index 512c340..025dd33 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -2,7 +2,8 @@ "name": "aerzte", "type": "module", "private": true, - "version": "0.0.0", + "version": "1.0.0", + "vdate": "2025-11-23 11:00 UTC", "scripts": { "dev": "vite", "build": "vite build", diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 98cc0a1..6f13dc1 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -4,6 +4,7 @@ import AppointmentList from './components/AppointmentList'; import './AppStyles.css'; // Die Basis-URL der Express-API +// Always use localhost because the browser runs on the host machine const API_URL = 'http://localhost:3001/api/appointments'; // Funktion zur Umwandlung von MongoDBs _id in die interne id des Frontends diff --git a/frontend/vite.config.js b/frontend/vite.config.js index 8b0f57b..7bf5433 100644 --- a/frontend/vite.config.js +++ b/frontend/vite.config.js @@ -4,4 +4,11 @@ import react from '@vitejs/plugin-react' // https://vite.dev/config/ export default defineConfig({ plugins: [react()], + server: { + host: '0.0.0.0', + port: 5173, + watch: { + usePolling: true + } + } })