Added possibility deploy with k3s
This commit is contained in:
@@ -1,48 +0,0 @@
|
||||
# ================================
|
||||
# Stage 1: сборка Vue
|
||||
# ================================
|
||||
FROM node:20-alpine AS frontend
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY frontend/package*.json ./
|
||||
RUN npm ci
|
||||
|
||||
COPY frontend/ ./
|
||||
RUN npm run build
|
||||
|
||||
# ================================
|
||||
# Stage 2: сборка Go
|
||||
# ================================
|
||||
FROM golang:1.25-alpine AS backend
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# зависимости отдельно — используем кэш слоёв
|
||||
COPY backend/go.mod backend/go.sum ./
|
||||
RUN go mod download
|
||||
|
||||
# исходники
|
||||
COPY backend/ ./
|
||||
|
||||
# встраиваем собранную статику Vue
|
||||
COPY --from=frontend /app/dist ./src/api/dist
|
||||
|
||||
# сборка бинарника
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -o server ./src/
|
||||
|
||||
# ================================
|
||||
# Stage 3: финальный образ
|
||||
# ================================
|
||||
FROM alpine:3.19
|
||||
|
||||
# нужен для корректной работы TLS и временных зон
|
||||
RUN apk add --no-cache ca-certificates tzdata
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=backend /app/server ./server
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT ["./server"]
|
||||
@@ -0,0 +1,55 @@
|
||||
version: '3.9'
|
||||
|
||||
services:
|
||||
app:
|
||||
image: git.myhomecloud.tech/admin/familyhub:latest
|
||||
container_name: application
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8000:8000"
|
||||
environment:
|
||||
- DB_HOST=${DB_HOST}
|
||||
- DB_PORT=${DB_PORT}
|
||||
- DB_USER=${DB_USER}
|
||||
- DB_PASSWORD=${DB_PASSWORD}
|
||||
- DB_NAME=${DB_NAME}
|
||||
- BOT_TOKEN=${BOT_TOKEN}
|
||||
- GOOGLE_APPLICATION_CREDENTIALS=${GOOGLE_APPLICATION_CREDENTIALS}
|
||||
- RUN_MODE=${RUN_MODE}
|
||||
- API_SECRET=${API_SECRET}
|
||||
- DB_PATH=postgres://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}?sslmode=disable
|
||||
- OPEN_API_ENABLED=${OPEN_API_ENABLED}
|
||||
- DEBUG_MODE=${DEBUG_MODE}
|
||||
depends_on:
|
||||
- db
|
||||
networks:
|
||||
- family-hub-net
|
||||
|
||||
db:
|
||||
image: git.myhomecloud.tech/admin/familyhub-postgres:latest
|
||||
container_name: postgres
|
||||
restart: always
|
||||
pull_policy: always
|
||||
ports:
|
||||
- "5432:5432"
|
||||
command:
|
||||
- postgres
|
||||
- -c
|
||||
- shared_preload_libraries=pg_cron
|
||||
- -c
|
||||
- cron.database_name=familyHubDB
|
||||
environment:
|
||||
POSTGRES_USER: ${DB_USER}
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
POSTGRES_DB: ${DB_NAME}
|
||||
volumes:
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
- ./init:/docker-entrypoint-initdb.d
|
||||
networks:
|
||||
- family-hub-net
|
||||
|
||||
networks:
|
||||
family-hub-net:
|
||||
|
||||
volumes:
|
||||
postgres-data:
|
||||
@@ -1,5 +0,0 @@
|
||||
FROM postgres:16
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends postgresql-16-cron \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
@@ -1 +0,0 @@
|
||||
CREATE EXTENSION IF NOT EXISTS pg_cron;
|
||||
Reference in New Issue
Block a user