feat: docker 构建调整
This commit is contained in:
28
Dockerfile
28
Dockerfile
@@ -1,4 +1,4 @@
|
|||||||
FROM node:20-alpine AS frontend-builder
|
FROM node:20-alpine AS builder
|
||||||
|
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
COPY ./web .
|
COPY ./web .
|
||||||
@@ -6,25 +6,29 @@ RUN npm install
|
|||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
|
|
||||||
FROM golang:1.24-alpine AS backend-builder
|
FROM golang:alpine AS builder2
|
||||||
|
|
||||||
|
ENV GO111MODULE=on \
|
||||||
|
CGO_ENABLED=0 \
|
||||||
|
GOOS=linux
|
||||||
|
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
RUN apk add --no-cache git build-base
|
|
||||||
COPY go.mod go.sum ./
|
ADD go.mod go.sum ./
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
COPY --from=frontend-builder /build/dist ./web/dist
|
COPY --from=builder /build/dist ./web/dist
|
||||||
|
RUN go build -ldflags "-s -w " -o gpt-load
|
||||||
RUN CGO_ENABLED=0 GOOS=linux go build \
|
|
||||||
-ldflags="-w -s" \
|
|
||||||
-o gpt-load
|
|
||||||
|
|
||||||
|
|
||||||
FROM alpine:latest
|
FROM alpine
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN apk --no-cache add ca-certificates tzdata
|
RUN apk upgrade --no-cache \
|
||||||
COPY --from=backend-builder /build/gpt-load .
|
&& apk add --no-cache ca-certificates tzdata \
|
||||||
|
&& update-ca-certificates
|
||||||
|
|
||||||
|
COPY --from=builder2 /build/gpt-load .
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
ENTRYPOINT ["/app/gpt-load"]
|
ENTRYPOINT ["/app/gpt-load"]
|
||||||
|
@@ -35,8 +35,9 @@ services:
|
|||||||
- mysql_data:/var/lib/mysql
|
- mysql_data:/var/lib/mysql
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
||||||
timeout: 10s
|
interval: 5s
|
||||||
retries: 5
|
timeout: 5s
|
||||||
|
retries: 10
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: redis:latest
|
image: redis:latest
|
||||||
@@ -46,8 +47,8 @@ services:
|
|||||||
# - "6379:6379"
|
# - "6379:6379"
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "redis-cli", "ping"]
|
test: ["CMD", "redis-cli", "ping"]
|
||||||
interval: 10s
|
interval: 5s
|
||||||
timeout: 5s
|
timeout: 3s
|
||||||
retries: 3
|
retries: 3
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
|
Reference in New Issue
Block a user