diff --git a/docker-compose.yml b/docker-compose.yml index 605f883..5523992 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,18 +2,24 @@ version: "3.9" services: app: - image: node:18 + build: + context: . # Repo-Root (da, wo Dockerfile & package.json liegen) + dockerfile: Dockerfile + image: papo-app:latest working_dir: /usr/src/app - volumes: - - .:/usr/src/app - - /usr/src/app/node_modules env_file: - .env - command: sh -c "npm install && npm run dev" + command: sh -c "npm run dev" ports: - "3000:3000" depends_on: - db + restart: unless-stopped + # WICHTIG: Für Production KEINE Source-Mounts, + # sonst überschreibst du das Image wieder mit einem leeren Verzeichnis. + # volumes: + # - .:/usr/src/app + # - /usr/src/app/node_modules db: image: postgres:15 diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..8b39a00 --- /dev/null +++ b/dockerfile @@ -0,0 +1,21 @@ +# Nutze Node 18 wie bisher +FROM node:18-alpine + +# Arbeitsverzeichnis +WORKDIR /usr/src/app + +# package.json und lockfile zuerst kopieren (für besseres Caching) +COPY package*.json ./ + +# Dependencies installieren (für Prod ggf. ohne devDependencies) +RUN npm ci --omit=dev + +# Restlichen Code kopieren +COPY . . + +# Wenn du TypeScript o.ä. builden musst, hier: +# RUN npm run build + +# Start-Kommando – anpassen, je nachdem was du hast +# z.B. "start" oder "dev" +CMD ["npm", "run", "dev"]