Docker integration

This commit is contained in:
2026-01-12 13:29:42 +01:00
parent a1fbd8acf5
commit deec1e33c3
3 changed files with 51 additions and 0 deletions

8
.dockerignore Normal file
View File

@@ -0,0 +1,8 @@
node_modules
dist
npm-debug.log
.git
.gitignore
.env
*.md
.DS_Store

25
Dockerfile Normal file
View File

@@ -0,0 +1,25 @@
FROM node:18-alpine
WORKDIR /app
# Dependencies installieren
COPY package*.json ./
RUN npm ci --only=production
# Source kopieren und builden
COPY tsconfig.json ./
COPY src ./src
RUN npm run build
# Aufräumen - nur dist und node_modules behalten
RUN rm -rf src tsconfig.json
# Port freigeben
EXPOSE 3000
# Healthcheck
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1
# Starten
CMD ["node", "dist/index.js"]

18
docker-compose.yml Normal file
View File

@@ -0,0 +1,18 @@
services:
qr-invoice:
build: .
container_name: qr-invoice-service
ports:
- "3050:3000"
environment:
- NODE_ENV=production
- PORT=3000
- HOST=0.0.0.0
- LOG_LEVEL=info
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/health"]
interval: 30s
timeout: 3s
retries: 3
start_period: 5s