toktok/Dockerfile

38 lines
628 B
Docker

# Build stage
FROM golang:1.21-alpine AS builder
WORKDIR /app
# 安装依赖
RUN apk add --no-cache git
# 复制go mod文件
COPY go.mod go.sum ./
RUN go mod download
# 复制源代码
COPY . .
# 构建
RUN CGO_ENABLED=1 GOOS=linux go build -a -installsuffix cgo -o toktok ./cmd/server
# Runtime stage
FROM alpine:latest
WORKDIR /app
# 安装ca证书和sqlite
RUN apk --no-cache add ca-certificates sqlite-libs
# 从builder复制二进制文件
COPY --from=builder /app/toktok .
COPY --from=builder /app/config ./config
# 创建数据目录
RUN mkdir -p /app/data
# 暴露端口
EXPOSE 8080
# 运行
CMD ["./toktok"]