Go 项目 Dockerfile 和 docker-compose

9 min read
FROM golang:alpine AS builder

LABEL stage=gobuilder

ENV CGO_ENABLED 0
ENV GOPROXY https://goproxy.cn,direct

RUN apk update --no-cache && apk add --no-cache tzdata

WORKDIR /build

ADD go.mod .
ADD go.sum .
RUN go mod download
COPY . .
RUN go build -ldflags="-s -w" -o /app/main ./cmd/server/main.go


FROM alpine

RUN apk update --no-cache && apk add --no-cache ca-certificates
COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai
ENV TZ Asia/Shanghai
ENV GIN_MODE release

WORKDIR /app
COPY ./templates /app/templates
COPY --from=builder /app/main /app/main
EXPOSE 9999
CMD ["./main"]
version: '3.3'
services:
  qdrant:
    volumes:
      - '$PWD/data:/qdrant/storage'
    ports:
      - '6333:6333'
    image: qdrant/qdrant

  documentai:
    build: .
    volumes:
      - '$PWD/config:/app/config'
    ports:
      - '9999:9999'