!4 build: 配置 docker

Merge pull request !4 from 何朝晖/build/docker
This commit is contained in:
GYhde
2026-05-23 04:54:41 +00:00
committed by Gitee
5 changed files with 82 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
node_modules
frontend/node_modules
frontend/dist
backend/bin
.git
+18
View File
@@ -0,0 +1,18 @@
# ---- Build Stage ----
FROM golang:1.26-alpine AS builder
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o /bin/gen2d ./cmd/main.go
# ---- Runtime Stage ----
FROM alpine:3.20
RUN apk add --no-cache ca-certificates
COPY --from=builder /bin/gen2d /usr/local/bin/gen2d
EXPOSE 8080
CMD ["gen2d"]
+21
View File
@@ -0,0 +1,21 @@
services:
backend:
build:
context: ./backend
dockerfile: Dockerfile
environment:
- GEN2D_MODE=release
- GEN2D_PORT=8080
expose:
- "8080"
restart: unless-stopped
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- "10000:80"
depends_on:
- backend
restart: unless-stopped
+17
View File
@@ -0,0 +1,17 @@
# ---- Build Stage ----
FROM node:20-alpine AS builder
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm ci
COPY . .
RUN npm run build
# ---- Runtime Stage ----
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
+21
View File
@@ -0,0 +1,21 @@
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
# SPA fallback
location / {
try_files $uri $uri/ /index.html;
}
# 反向代理 /api 到后端服务
location /api/ {
proxy_pass http://backend:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}