deploy(core): add docker files
This commit is contained in:
+28
@@ -0,0 +1,28 @@
|
|||||||
|
# ---------- BUILD STAGE ----------
|
||||||
|
FROM node:20-alpine AS builder
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY package.json package-lock.json* ./
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
|
||||||
|
# ---------- RUN STAGE ----------
|
||||||
|
FROM node:20-alpine AS runner
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ENV NODE_ENV=production
|
||||||
|
|
||||||
|
# nur notwendige files kopieren (viel kleiner!)
|
||||||
|
COPY --from=builder /app/.next/standalone ./
|
||||||
|
COPY --from=builder /app/.next/static ./.next/static
|
||||||
|
COPY --from=builder /app/public ./public
|
||||||
|
|
||||||
|
EXPOSE 3000
|
||||||
|
|
||||||
|
CMD ["node", "server.js"]
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
services:
|
||||||
|
homepage:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
image: byhaider-homepage:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.byhaider-homepage.rule=Host(`byhaider.dev`)"
|
||||||
|
- "traefik.http.routers.byhaider-homepage.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.byhaider-homepage.tls=true"
|
||||||
|
- "traefik.http.routers.byhaider-homepage.tls.certResolver=cloudflare"
|
||||||
|
- "traefik.http.services.byhaider-homepage.loadbalancer.server.port=3000"
|
||||||
|
networks:
|
||||||
|
- traefik-network
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik-network:
|
||||||
|
external: true
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "🚀 Starte Deployment für byHaider-Homepage..."
|
||||||
|
|
||||||
|
cd ~/byhaider-homepage
|
||||||
|
|
||||||
|
echo "📥 Pull latest changes for byhaider-homepage..."
|
||||||
|
git pull origin main
|
||||||
|
|
||||||
|
echo "🛑 Stoppe alte Container..."
|
||||||
|
docker compose down
|
||||||
|
|
||||||
|
echo "📦 Baue Images neu..."
|
||||||
|
docker compose build
|
||||||
|
|
||||||
|
echo "⬆️ Starte Container..."
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
echo "🧹 Bereinige alte Images..."
|
||||||
|
docker image prune -f
|
||||||
|
|
||||||
|
echo "✅ Deployment abgeschlossen!"
|
||||||
|
docker compose ps
|
||||||
|
|
||||||
@@ -3,6 +3,7 @@ import createNextIntlPlugin from "next-intl/plugin";
|
|||||||
|
|
||||||
const nextConfig: NextConfig = {
|
const nextConfig: NextConfig = {
|
||||||
/* config options here */
|
/* config options here */
|
||||||
|
output: 'standalone',
|
||||||
};
|
};
|
||||||
|
|
||||||
const withNextIntl = createNextIntlPlugin();
|
const withNextIntl = createNextIntlPlugin();
|
||||||
|
|||||||
Reference in New Issue
Block a user