feat:打包镜像 以及 相关说明文档
This commit is contained in:
14
.env.production
Normal file
14
.env.production
Normal 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
80
DEPLOY.md
Normal 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
|
||||||
|
```
|
||||||
@@ -16,7 +16,7 @@ android {
|
|||||||
versionCode = 1
|
versionCode = 1
|
||||||
versionName = "1.0.0"
|
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 {
|
signingConfigs {
|
||||||
|
|||||||
@@ -2,17 +2,20 @@ version: '3.8'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
memory:
|
memory:
|
||||||
build: ./server
|
image: memory-server:latest
|
||||||
|
# build: ./server
|
||||||
container_name: memory-server
|
container_name: memory-server
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "6600:8080"
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/app/data
|
- ./data:/app/data
|
||||||
environment:
|
environment:
|
||||||
- SERVER_ADDR=:8080
|
- SERVER_ADDR=:8080
|
||||||
- DB_PATH=/app/data/memory.db
|
- DB_PATH=/app/data/memory.db
|
||||||
- JWT_SECRET=${JWT_SECRET:-change-me-in-production}
|
- 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_ACCOUNT_ID=${R2_ACCOUNT_ID}
|
||||||
- R2_ACCESS_KEY_ID=${R2_ACCESS_KEY_ID}
|
- R2_ACCESS_KEY_ID=${R2_ACCESS_KEY_ID}
|
||||||
- R2_ACCESS_KEY_SECRET=${R2_ACCESS_KEY_SECRET}
|
- R2_ACCESS_KEY_SECRET=${R2_ACCESS_KEY_SECRET}
|
||||||
|
|||||||
@@ -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
|
WORKDIR /app
|
||||||
COPY go.mod go.sum ./
|
COPY go.mod go.sum ./
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
|
|
||||||
COPY . .
|
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
|
FROM --platform=linux/amd64 alpine:latest
|
||||||
RUN apk --no-cache add ca-certificates sqlite
|
RUN apk --no-cache add ca-certificates sqlite-libs
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY --from=builder /app/memory .
|
COPY --from=builder /app/memory-server .
|
||||||
|
|
||||||
|
RUN mkdir -p /app/data
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
CMD ["./memory"]
|
CMD ["./memory-server"]
|
||||||
|
|||||||
Reference in New Issue
Block a user