feat:打包镜像 以及 相关说明文档

This commit is contained in:
amos wong
2025-12-14 21:28:03 +08:00
parent a3378d646e
commit 35b7db73bf
5 changed files with 110 additions and 9 deletions

14
.env.production Normal file
View File

@@ -0,0 +1,14 @@
# 生产环境配置 - 复制到服务器的 /amos/memory/.env
# JWT 密钥 (请修改为随机字符串)
JWT_SECRET=memory-app-jwt-secret-2025
# 服务器公网地址
BASE_URL=https://x.amos.us.kg
# Cloudflare R2
R2_ACCOUNT_ID=ebf33b5ee4eb26f32af0c6e06102e000
R2_ACCESS_KEY_ID=8acbc8a9386d60d0e8dac6bd8165c618
R2_ACCESS_KEY_SECRET=72935e23b5b4be8fda99008e75285e8ac778f8926656c42780b25785bb149443
R2_BUCKET_NAME=memory
R2_PUBLIC_URL=

80
DEPLOY.md Normal file
View File

@@ -0,0 +1,80 @@
# Memory Server 部署指南
## 本地构建镜像
```bash
# 进入 server 目录
cd server
# 构建 linux/amd64 镜像
docker build --platform linux/amd64 -t memory-server:latest .
# 导出为 tar 文件
docker save memory-server:latest -o memory-server.tar
```
## 上传到服务器
```bash
# 上传镜像和配置文件
scp memory-server.tar user@your-server:/amos/memory/
scp docker-compose.yml user@your-server:/amos/memory/
scp .env.production user@your-server:/amos/memory/.env
```
## 服务器部署
```bash
# SSH 登录服务器
ssh user@your-server
# 进入项目目录
cd /amos/memory
# 创建数据目录
mkdir -p data
# 加载镜像
docker load -i memory-server.tar
# 启动服务
docker compose up -d
# 查看日志
docker compose logs -f
# 删除镜像文件(可选)
rm memory-server.tar
```
## 常用命令
```bash
# 查看状态
docker compose ps
# 重启服务
docker compose restart
# 停止服务
docker compose down
# 查看日志
docker compose logs -f
```
## 更新部署
本地重新构建镜像后:
```bash
# 本地
docker save memory-server:latest -o memory-server.tar
scp memory-server.tar user@your-server:/amos/memory/
# 服务器
cd /amos/memory
docker compose down
docker load -i memory-server.tar
docker compose up -d
```

View File

@@ -16,7 +16,7 @@ android {
versionCode = 1
versionName = "1.0.0"
buildConfigField("String", "API_BASE_URL", "\"http://192.168.0.100:8080/api/\"")
buildConfigField("String", "API_BASE_URL", "\"https://x.amos.us.kg/api/\"")
}
signingConfigs {

View File

@@ -2,17 +2,20 @@ version: '3.8'
services:
memory:
build: ./server
image: memory-server:latest
# build: ./server
container_name: memory-server
restart: unless-stopped
ports:
- "8080:8080"
- "6600:8080"
volumes:
- ./data:/app/data
environment:
- SERVER_ADDR=:8080
- DB_PATH=/app/data/memory.db
- JWT_SECRET=${JWT_SECRET:-change-me-in-production}
- BASE_URL=${BASE_URL:-http://localhost:8080}
- LOCAL_UPLOAD_PATH=
- R2_ACCOUNT_ID=${R2_ACCOUNT_ID}
- R2_ACCESS_KEY_ID=${R2_ACCESS_KEY_ID}
- R2_ACCESS_KEY_SECRET=${R2_ACCESS_KEY_SECRET}

View File

@@ -1,17 +1,21 @@
FROM golang:1.21-alpine AS builder
FROM --platform=linux/amd64 golang:1.21-alpine AS builder
RUN apk add --no-cache gcc musl-dev sqlite-dev
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=1 GOOS=linux go build -a -installsuffix cgo -o memory .
RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o memory-server .
FROM alpine:latest
RUN apk --no-cache add ca-certificates sqlite
FROM --platform=linux/amd64 alpine:latest
RUN apk --no-cache add ca-certificates sqlite-libs
WORKDIR /app
COPY --from=builder /app/memory .
COPY --from=builder /app/memory-server .
RUN mkdir -p /app/data
EXPOSE 8080
CMD ["./memory"]
CMD ["./memory-server"]