Dockerfile
# 第一阶段:构建应用
FROM golang:1.22.12-alpine AS builder
# 安装 git
RUN apk update && apk add --no-cache git
# 设置工作目录
WORKDIR /app
# 克隆仓库
RUN git clone https://github.com/zhaopengme/qwenmtapi.git qwenmtapi
WORKDIR /app/qwenmtapi
# 示例:设置一个构建时或默认的运行时环境变量
# 这会成为镜像的一部分,并在容器运行时生效,除非被 -e 覆盖
ENV GIN_MODE="release"
ENV DEFAULT_LOG_LEVEL="info"
RUN go mod download
RUN go build -ldflags="-s -w" -o qwenmtapi main.go
# 第二阶段:创建精简的运行时镜像
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/qwenmtapi/qwenmtapi .
EXPOSE 8080
ENTRYPOINT ["./qwenmtapi"]
docker-compose.yaml
version: '3.8' # Docker Compose 文件格式版本,建议使用最新稳定版
services:
qwenmtapi:
build: . # 指定 Dockerfile 的路径为当前目录,Docker Compose 会在这里找到 Dockerfile 并构建镜像
container_name: qwenmtapi-service
ports:
- "8086:8080" # 将宿主机的 8080 端口映射到容器的 8080 端口
environment:
# 在这里配置你的环境变量
# AUTH_ENABLED: "false" # 默认不启用认证。启用认证请改为 "true"
# API_KEY: "sk-your-single-key" # 如果只使用一个 API 密钥
# API_KEYS: "sk-key1,sk-key2,sk-key3" # 如果使用多个 API 密钥,用逗号分隔
# GIN_MODE: "debug" # GoFrame/Gin 模式,可选 "debug" 或 "release"。生产环境推荐 "release"
# TZ: "Asia/Shanghai" # 设置容器的时区,例如东八区
# 示例1:默认配置 (不启用认证,GIN_MODE 留给 GoFrame/Gin 默认,通常是 debug)
# 这条无需特别配置,项目默认不启用认证
# 当然,你也可以显式写上:
AUTH_ENABLED: "false"
# 示例2:启用认证并指定多个 API 密钥(推荐用于生产环境)
# 如果要启用此配置,请注释掉上面的示例1,并取消下面行的注释,然后替换为你的实际密钥
# AUTH_ENABLED: "true"
# API_KEYS: "sk-prod-key-1,sk-prod-key-2"
# GIN_MODE: "release"
# TZ: "Asia/Shanghai" # 生产环境通常会指定时区
restart: unless-stopped # 容器在退出时总是重启,除非 Docker daemon 停止或容器被手动停止
# 如果你需要持续化存储日志或其他数据,可以添加 volumes
# volumes:
# - ./logs:/app/logs # 示例:将容器内的 /app/logs 映射到宿主机的 ./logs 目录
docker-compose.yaml