feat: 添加 Docker Hub 镜像支持

- 更新 Dockerfile 使用 Go 1.24
- 优化镜像大小(14.8MB)
- 推送到 Docker Hub (ouaone/sms-receiver-go)
- 更新 README.md 添加 Docker Hub 使用说明
This commit is contained in:
OpenClaw Agent
2026-02-08 19:48:17 +08:00
parent 3ec9dac71e
commit 93e3911f43
2 changed files with 46 additions and 16 deletions

View File

@@ -1,13 +1,13 @@
# 构建阶段 # 构建阶段 - 使用多阶段构建减小镜像体积
FROM golang:1.21-alpine AS builder FROM golang:1.24-alpine AS builder
# 安装构建依赖 # 安装构建依赖
RUN apk add --no-cache git gcc musl-dev RUN apk add --no-cache git gcc musl-dev sqlite-dev
# 设置工作目录 # 设置工作目录
WORKDIR /app WORKDIR /app
# 复制 go.mod 和 go.sum # 复制依赖文件
COPY go.mod go.sum ./ COPY go.mod go.sum ./
# 下载依赖 # 下载依赖
@@ -16,34 +16,44 @@ RUN go mod download
# 复制源代码 # 复制源代码
COPY . . COPY . .
# 编译 # 编译 - 嵌入版本信息
RUN CGO_ENABLED=1 GOOS=linux go build -a -installsuffix cgo -ldflags="-w -s" -o sms-receiver main.go ARG VERSION=v2.0.0
ARG BUILD_TIME=unknown
ARG GIT_COMMIT=unknown
# 运行阶段 RUN CGO_ENABLED=1 GOOS=linux go build \
FROM alpine:latest -ldflags="-X 'main.Version=${VERSION}' -X 'main.BuildTime=${BUILD_TIME}' -X 'main.GitCommit=${GIT_COMMIT}' -X 'main.BuildEnv=docker' -w -s" \
-a -installsuffix cgo \
-o sms-receiver main.go
# 安装运行时依赖 # 运行阶段 - 使用最小化 Alpine 镜像
RUN apk --no-cache add ca-certificates sqlite tzdata FROM alpine:3.19
# 设置时区(可选) # 仅安装必需的运行时依赖
RUN apk --no-cache add \
ca-certificates \
tzdata \
sqlite-libs
# 设置时区
ENV TZ=Asia/Shanghai ENV TZ=Asia/Shanghai
# 创建非 root 用户 # 创建非 root 用户(安全最佳实践)
RUN addgroup -g 1000 appuser && \ RUN addgroup -g 1000 appuser && \
adduser -D -u 1000 -G appuser appuser adduser -D -u 1000 -G appuser appuser
# 设置工作目录 # 设置工作目录
WORKDIR /app WORKDIR /app
# 从构建阶段复制二进制文件 # 从构建阶段复制二进制文件和配置示例
COPY --from=builder /app/sms-receiver . COPY --from=builder /app/sms-receiver .
COPY --from=builder /app/config.example.yaml config.yaml COPY --from=builder /app/config.example.yaml config.yaml
# 创建数据目录 # 创建数据目录并设置权限
RUN mkdir -p /app/data && \ RUN mkdir -p /app/data /app/logs && \
chown -R appuser:appuser /app chown -R appuser:appuser /app
# 切换用户 # 切换到非 root 用户
USER appuser USER appuser
# 暴露端口 # 暴露端口

View File

@@ -121,6 +121,24 @@ make run
### 方式 3: Docker 部署 ### 方式 3: Docker 部署
**使用 Docker Hub 镜像(推荐)**:
```bash
# 拉取镜像
docker pull ouaone/sms-receiver-go:latest
# 运行容器
docker run -d \
--name sms-receiver-go \
-p 28001:28001 \
-v $(pwd)/config.yaml:/app/config.yaml:ro \
-v $(pwd)/data:/app/data \
--restart unless-stopped \
ouaone/sms-receiver-go:latest
```
**从源码构建**:
```bash ```bash
# 构建镜像 # 构建镜像
make docker-build make docker-build
@@ -137,6 +155,8 @@ make docker-logs
docker-compose up -d docker-compose up -d
``` ```
**Docker Hub**: https://hub.docker.com/r/ouaone/sms-receiver-go
### 方式 4: 从源码编译 ### 方式 4: 从源码编译
```bash ```bash