From 3843be7675da9836ef74fc5a5d51063b3d69d60f Mon Sep 17 00:00:00 2001 From: shrt Date: Mon, 17 Mar 2025 17:02:20 +0100 Subject: [PATCH] docker files and deployment script --- Dockerfile | 15 +++++++++++++++ deploy.sh | 15 +++++++++++++++ docker-compose.yml | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 Dockerfile create mode 100644 deploy.sh create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..97c5bae --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM node:18-alpine + +RUN npm install -g pnpm + +WORKDIR /app + +COPY package.json pnpm-lock.yaml ./ + +RUN pnpm install --frozen-lockfile + +COPY . . + +RUN pnpm build + +CMD ["pnpm", "start"] diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..54622e3 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +if [ -z "$1" ]; then + echo "Usage: $0 " + exit 1 +fi + +PROJECT_PATH=$1 + +echo "Deploying project..." +cd "$PROJECT_PATH" || { echo "Directory not found: $PROJECT_PATH"; exit 1; } +git pull origin main +docker compose up -d --no-deps --build nextapp +echo "Deployment finished!" \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..79c97b6 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,42 @@ +version: "3.8" +services: + nextapp: + build: . + deploy: + update_config: + parallelism: 1 + delay: 5s + order: start-first + container_name: logipedia + restart: always + labels: + - "traefik.enable=true" + - "traefik.http.routers.logipedia.rule=Host(`logipedia.shortman.me`)" + - "traefik.http.routers.logipedia.entrypoints=websecure" + - "traefik.http.services.logipedia.loadbalancer.server.port=3000" + - "traefik.http.routers.logipedia.tls.certresolver=myresolver" + expose: + - "3000" + # ports: + # - "3000:3000" + networks: + - webproxy + db: + image: postgres:latest + container_name: logipedia-db + restart: always + shm_size: 128mb + env_file: + - .env + volumes: + - pgdata:/var/lib/postgresql/data + ports: + - "5432:5432" + +volumes: + pgdata: + driver: local + +networks: + webproxy: + external: true