🐳 全面更新所有Docker Compose配置文件
✨ 主要更新: - 将所有配置文件从原版镜像迁移到Git构建版本 - 统一使用 Dockerfile.git 从仓库自动构建 - 标准化环境变量和JVM配置 - 升级MongoDB到7.0版本 - 添加完整的健康检查机制 📋 更新文件列表: - docker-compose.base-aliyun-beijing.yml ✅ - docker-compose.base-aliyun-guangzhou.yml ✅ - docker-compose.base.proxy.yml ✅ - docker-compose.base.yml ✅ - docker-compose.example.yml ✅ - docker-compose.base-git.yml ✅ (新增) - DOCKER_COMPOSE_GUIDE.md ✅ (新增部署指南) 🔧 配置改进: - 内存配置优化:-Xms512m -Xmx2g~4g - 添加完整环境变量配置 - 支持加密密钥自动生成 - 统一端口映射和健康检查 📖 现在支持7种不同的部署方案,全部使用公共空间改造版本
This commit is contained in:
parent
cb39c208b6
commit
d5d4409b7b
110
DOCKER_COMPOSE_GUIDE.md
Normal file
110
DOCKER_COMPOSE_GUIDE.md
Normal file
@ -0,0 +1,110 @@
|
||||
# Docker Compose 部署指南
|
||||
|
||||
> **重要**:所有Docker Compose文件已更新为使用你的JmalCloud公共空间改造版本
|
||||
|
||||
## 📋 可用的部署配置
|
||||
|
||||
| 文件名 | 用途 | 特点 |
|
||||
|--------|------|------|
|
||||
| `docker-compose.git.yml` | **Git构建版(推荐)** | ✅ 从Git仓库自动构建<br>✅ 最新的改造版本 |
|
||||
| `docker-compose.base.yml` | **基础版本** | ✅ 标准配置<br>✅ 适合大部分用户 |
|
||||
| `docker-compose.base-git.yml` | **简化Git版本** | ✅ 精简配置<br>✅ Git自动构建 |
|
||||
| `docker-compose.base-aliyun-beijing.yml` | **阿里云北京** | ✅ 针对阿里云北京优化<br>✅ Git自动构建 |
|
||||
| `docker-compose.base-aliyun-guangzhou.yml` | **阿里云广州** | ✅ 针对阿里云广州优化<br>✅ Git自动构建 |
|
||||
| `docker-compose.base.proxy.yml` | **代理版本** | ✅ 支持代理环境<br>✅ Git自动构建 |
|
||||
| `docker-compose.example.yml` | **模板配置** | ✅ 环境变量模板<br>✅ 适合自定义部署 |
|
||||
|
||||
## 🚀 快速部署
|
||||
|
||||
### 方案1:推荐部署(最简单)
|
||||
```bash
|
||||
# 使用一键部署脚本
|
||||
./build-from-git.sh
|
||||
```
|
||||
|
||||
### 方案2:选择特定配置
|
||||
```bash
|
||||
# 基础版本
|
||||
docker-compose -f docker-compose.base.yml up -d --build
|
||||
|
||||
# Git版本
|
||||
docker-compose -f docker-compose.git.yml up -d --build
|
||||
|
||||
# 阿里云北京
|
||||
docker-compose -f docker-compose.base-aliyun-beijing.yml up -d --build
|
||||
|
||||
# 阿里云广州
|
||||
docker-compose -f docker-compose.base-aliyun-guangzhou.yml up -d --build
|
||||
```
|
||||
|
||||
## ⚙️ 主要更新内容
|
||||
|
||||
### ✅ 全面替换镜像源
|
||||
- **原版**:`jmal/jmalcloud:latest`
|
||||
- **改造版**:从 `https://git.1080p.hk/chenpei/jmalcloud` 自动构建
|
||||
|
||||
### ✅ 统一配置标准
|
||||
- **Java内存**:`-Xms512m -Xmx2g` ~ `-Xmx4g`
|
||||
- **MongoDB版本**:升级到 `mongo:7.0`
|
||||
- **健康检查**:添加完整的健康检查机制
|
||||
- **环境变量**:标准化所有环境变量
|
||||
|
||||
### ✅ 新增功能配置
|
||||
- **公共空间模式**:所有配置都支持公共共享文件空间
|
||||
- **文件监控**:`FILE_MONITOR=true`
|
||||
- **精确搜索**:`EXACT_SEARCH=false`
|
||||
- **加密配置**:自动生成加密密钥和盐值
|
||||
|
||||
## 🔧 环境变量说明
|
||||
|
||||
| 变量名 | 默认值 | 说明 |
|
||||
|--------|--------|------|
|
||||
| `MONGODB_URI` | `mongodb://mongo:27017/jmalcloud` | MongoDB连接地址 |
|
||||
| `JVM_OPTS` | `-Xms512m -Xmx2g` | Java虚拟机参数 |
|
||||
| `FILE_ROOT_DIR` | `/jmalcloud/files` | 文件存储根目录 |
|
||||
| `EXACT_SEARCH` | `false` | 是否启用精确搜索 |
|
||||
| `FILE_MONITOR` | `true` | 是否启用文件监控 |
|
||||
| `ENCRYPTION_SECRET_KEY` | `""` | 加密密钥(自动生成) |
|
||||
| `ENCRYPTION_SALT` | `""` | 加密盐值(自动生成) |
|
||||
|
||||
## 🌐 访问地址
|
||||
|
||||
部署成功后,你可以通过以下地址访问:
|
||||
|
||||
- 🌐 **前端界面**: http://localhost:7070
|
||||
- 🔌 **后端API**: http://localhost:7072
|
||||
- 📄 **OnlyOffice**: http://localhost:7071
|
||||
|
||||
## 🔧 管理命令
|
||||
|
||||
```bash
|
||||
# 查看服务状态
|
||||
docker-compose -f [配置文件] ps
|
||||
|
||||
# 查看日志
|
||||
docker-compose -f [配置文件] logs -f
|
||||
|
||||
# 停止服务
|
||||
docker-compose -f [配置文件] down
|
||||
|
||||
# 重启服务
|
||||
docker-compose -f [配置文件] restart
|
||||
|
||||
# 重新构建
|
||||
docker-compose -f [配置文件] up -d --build --force-recreate
|
||||
```
|
||||
|
||||
## ⚠️ 重要提示
|
||||
|
||||
1. **首次部署**:建议使用 `./build-from-git.sh` 脚本
|
||||
2. **数据目录**:确保 `./docker/jmalcloud/` 目录有适当权限
|
||||
3. **端口冲突**:如有端口冲突,请修改配置文件中的端口映射
|
||||
4. **内存配置**:根据服务器配置调整 `JVM_OPTS` 参数
|
||||
5. **Git认证**:构建时需要访问Git仓库,确保网络连通性
|
||||
|
||||
## 📞 支持
|
||||
|
||||
如果遇到问题:
|
||||
1. 查看容器日志:`docker-compose -f [配置文件] logs`
|
||||
2. 检查服务状态:`docker-compose -f [配置文件] ps`
|
||||
3. 重新构建:`docker-compose -f [配置文件] up -d --build --force-recreate`
|
||||
@ -17,17 +17,44 @@ services:
|
||||
|
||||
jmalcloud:
|
||||
container_name: jmalcloud_server
|
||||
image: registry.cn-beijing.aliyuncs.com/jmalcloud/jmalcloud:latest
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.git
|
||||
args:
|
||||
GIT_REPO: https://git.1080p.hk/chenpei/jmalcloud.git
|
||||
GIT_USERNAME: chenpei
|
||||
GIT_PASSWORD: jsjj654321
|
||||
TARGETPLATFORM: linux/amd64
|
||||
image: chenpei/jmalcloud:aliyun-beijing
|
||||
environment:
|
||||
MONGODB_URI: "mongodb://mongo:27017/jmalcloud"
|
||||
TZ: "Asia/Shanghai"
|
||||
JVM_OPTS: "-Xms256m -Xmx1024m"
|
||||
JVM_OPTS: "-Xms512m -Xmx2g"
|
||||
RUN_ENVIRONMENT: "prod"
|
||||
LOG_LEVEL: "warn"
|
||||
EXACT_SEARCH: "false"
|
||||
FILE_MONITOR: "true"
|
||||
FILE_ROOT_DIR: "/jmalcloud/files"
|
||||
TESS4J_DATA_PATH: "/jmalcloud/tess4j/datapath"
|
||||
MONITOR_IGNORE_FILE_PREFIX: ".DS_Store,._"
|
||||
ENCRYPTION_SECRET_KEY: ""
|
||||
ENCRYPTION_SALT: ""
|
||||
PUID: 0
|
||||
PGID: 0
|
||||
volumes:
|
||||
- ./docker/jmalcloud/files:/jmalcloud/files/
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 7072:8088
|
||||
depends_on:
|
||||
mongo:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8088/public/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 60s
|
||||
|
||||
nginx:
|
||||
container_name: jmalcloud_nginx
|
||||
|
||||
@ -17,17 +17,44 @@ services:
|
||||
|
||||
jmalcloud:
|
||||
container_name: jmalcloud_server
|
||||
image: registry.cn-guangzhou.aliyuncs.com/jmalcloud/jmalcloud:latest
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.git
|
||||
args:
|
||||
GIT_REPO: https://git.1080p.hk/chenpei/jmalcloud.git
|
||||
GIT_USERNAME: chenpei
|
||||
GIT_PASSWORD: jsjj654321
|
||||
TARGETPLATFORM: linux/amd64
|
||||
image: chenpei/jmalcloud:aliyun-guangzhou
|
||||
environment:
|
||||
MONGODB_URI: "mongodb://mongo:27017/jmalcloud"
|
||||
TZ: "Asia/Shanghai"
|
||||
JVM_OPTS: "-Xms256m -Xmx1024m"
|
||||
JVM_OPTS: "-Xms512m -Xmx2g"
|
||||
RUN_ENVIRONMENT: "prod"
|
||||
LOG_LEVEL: "warn"
|
||||
EXACT_SEARCH: "false"
|
||||
FILE_MONITOR: "true"
|
||||
FILE_ROOT_DIR: "/jmalcloud/files"
|
||||
TESS4J_DATA_PATH: "/jmalcloud/tess4j/datapath"
|
||||
MONITOR_IGNORE_FILE_PREFIX: ".DS_Store,._"
|
||||
ENCRYPTION_SECRET_KEY: ""
|
||||
ENCRYPTION_SALT: ""
|
||||
PUID: 0
|
||||
PGID: 0
|
||||
volumes:
|
||||
- ./docker/jmalcloud/files:/jmalcloud/files/
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 7072:8088
|
||||
depends_on:
|
||||
mongo:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8088/public/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 60s
|
||||
|
||||
nginx:
|
||||
container_name: jmalcloud_nginx
|
||||
|
||||
83
docker-compose.base-git.yml
Normal file
83
docker-compose.base-git.yml
Normal file
@ -0,0 +1,83 @@
|
||||
services:
|
||||
mongo:
|
||||
container_name: jmalcloud_mongodb
|
||||
image: mongo:7.0
|
||||
environment:
|
||||
TZ: "Asia/Shanghai"
|
||||
volumes:
|
||||
- ./docker/jmalcloud/mongodb/data/db:/data/db
|
||||
- ./docker/jmalcloud/mongodb/backup:/dump
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
command: --wiredTigerCacheSizeGB 0.5
|
||||
|
||||
jmalcloud:
|
||||
container_name: jmalcloud_server
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.git
|
||||
args:
|
||||
GIT_REPO: https://git.1080p.hk/chenpei/jmalcloud.git
|
||||
GIT_USERNAME: chenpei
|
||||
GIT_PASSWORD: jsjj654321
|
||||
TARGETPLATFORM: linux/amd64
|
||||
image: chenpei/jmalcloud:git-latest
|
||||
environment:
|
||||
MONGODB_URI: "mongodb://mongo:27017/jmalcloud"
|
||||
TZ: "Asia/Shanghai"
|
||||
JVM_OPTS: "-Xms512m -Xmx4g"
|
||||
RUN_ENVIRONMENT: "prod"
|
||||
LOG_LEVEL: "warn"
|
||||
EXACT_SEARCH: "false"
|
||||
FILE_MONITOR: "true"
|
||||
FILE_ROOT_DIR: "/jmalcloud/files"
|
||||
TESS4J_DATA_PATH: "/jmalcloud/tess4j/datapath"
|
||||
MONITOR_IGNORE_FILE_PREFIX: ".DS_Store,._"
|
||||
NGRAM_MAX_CONTENT_LENGTH_MB: "5"
|
||||
NGRAM_MIN_SIZE: "2"
|
||||
NGRAM_MAX_SIZE: "6"
|
||||
ENCRYPTION_SECRET_KEY: ""
|
||||
ENCRYPTION_SALT: ""
|
||||
PUID: 0
|
||||
PGID: 0
|
||||
volumes:
|
||||
- ./docker/jmalcloud/files:/jmalcloud/files/
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 7072:8088
|
||||
depends_on:
|
||||
mongo:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8088/public/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 60s
|
||||
|
||||
nginx:
|
||||
container_name: jmalcloud_nginx
|
||||
image: jmal/jmalcloud-nginx:latest
|
||||
ports:
|
||||
- 7070:80
|
||||
- 7071:8089
|
||||
environment:
|
||||
TZ: "Asia/Shanghai"
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- jmalcloud
|
||||
links:
|
||||
- jmalcloud
|
||||
- office
|
||||
|
||||
office: # Optional
|
||||
container_name: jmalcloud_office
|
||||
image: onlyoffice/documentserver:9.0
|
||||
environment:
|
||||
TZ: "Asia/Shanghai"
|
||||
JWT_SECRET: "my_secret"
|
||||
restart: unless-stopped
|
||||
@ -17,17 +17,44 @@ services:
|
||||
|
||||
jmalcloud:
|
||||
container_name: jmalcloud_server
|
||||
image: docker.jmalx.com/jmal/jmalcloud:latest
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.git
|
||||
args:
|
||||
GIT_REPO: https://git.1080p.hk/chenpei/jmalcloud.git
|
||||
GIT_USERNAME: chenpei
|
||||
GIT_PASSWORD: jsjj654321
|
||||
TARGETPLATFORM: linux/amd64
|
||||
image: chenpei/jmalcloud:proxy
|
||||
environment:
|
||||
MONGODB_URI: "mongodb://mongo:27017/jmalcloud"
|
||||
TZ: "Asia/Shanghai"
|
||||
JVM_OPTS: "-Xms256m -Xmx1024m"
|
||||
JVM_OPTS: "-Xms512m -Xmx2g"
|
||||
RUN_ENVIRONMENT: "prod"
|
||||
LOG_LEVEL: "warn"
|
||||
EXACT_SEARCH: "false"
|
||||
FILE_MONITOR: "true"
|
||||
FILE_ROOT_DIR: "/jmalcloud/files"
|
||||
TESS4J_DATA_PATH: "/jmalcloud/tess4j/datapath"
|
||||
MONITOR_IGNORE_FILE_PREFIX: ".DS_Store,._"
|
||||
ENCRYPTION_SECRET_KEY: ""
|
||||
ENCRYPTION_SALT: ""
|
||||
PUID: 0
|
||||
PGID: 0
|
||||
volumes:
|
||||
- ./docker/jmalcloud/files:/jmalcloud/files/
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 7072:8088
|
||||
depends_on:
|
||||
mongo:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8088/public/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 60s
|
||||
|
||||
nginx:
|
||||
container_name: jmalcloud_nginx
|
||||
|
||||
@ -17,23 +17,49 @@ services:
|
||||
|
||||
jmalcloud:
|
||||
container_name: jmalcloud_server
|
||||
image: jmal/jmalcloud:latest
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.git
|
||||
args:
|
||||
GIT_REPO: https://git.1080p.hk/chenpei/jmalcloud.git
|
||||
GIT_USERNAME: chenpei
|
||||
GIT_PASSWORD: jsjj654321
|
||||
TARGETPLATFORM: linux/amd64
|
||||
image: chenpei/jmalcloud:base
|
||||
environment:
|
||||
MONGODB_URI: "mongodb://mongo:27017/jmalcloud"
|
||||
TZ: "Asia/Shanghai"
|
||||
JVM_OPTS: "-Xms512m -Xmx4g"
|
||||
#EXACT_SEARCH: false
|
||||
#PUID: 0
|
||||
#PGID: 0
|
||||
RUN_ENVIRONMENT: "prod"
|
||||
LOG_LEVEL: "warn"
|
||||
EXACT_SEARCH: "false"
|
||||
FILE_MONITOR: "true"
|
||||
FILE_ROOT_DIR: "/jmalcloud/files"
|
||||
TESS4J_DATA_PATH: "/jmalcloud/tess4j/datapath"
|
||||
MONITOR_IGNORE_FILE_PREFIX: ".DS_Store,._"
|
||||
NGRAM_MAX_CONTENT_LENGTH_MB: "5"
|
||||
NGRAM_MIN_SIZE: "2"
|
||||
NGRAM_MAX_SIZE: "6"
|
||||
# 如果为空系统会自动生成(位置在/jmalcloud/files/.env)(openssl rand -hex 32)
|
||||
ENCRYPTION_SECRET_KEY: ""
|
||||
# 如果为空系统会自动生成(位置在/jmalcloud/files/.env)(openssl rand -hex 16)
|
||||
ENCRYPTION_SALT: ""
|
||||
PUID: 0
|
||||
PGID: 0
|
||||
volumes:
|
||||
- ./docker/jmalcloud/files:/jmalcloud/files/
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 7072:8088
|
||||
depends_on:
|
||||
mongo:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8088/public/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 60s
|
||||
|
||||
nginx:
|
||||
container_name: jmalcloud_nginx
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
services:
|
||||
mongo:
|
||||
container_name: ${CONTAINER_NAME_PREFIX}_mongodb
|
||||
image: mongo:4.4
|
||||
image: mongo:7.0
|
||||
environment:
|
||||
TZ: Asia/Shanghai
|
||||
volumes:
|
||||
@ -9,18 +9,52 @@ services:
|
||||
- ${RESOURCE_DB_PATH}/custom:/etc/mongo
|
||||
- ${RESOURCE_DB_PATH}/backup:/dump
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
command: --wiredTigerCacheSizeGB 0.5
|
||||
jmalcloud:
|
||||
container_name: ${CONTAINER_NAME_PREFIX}_server
|
||||
image: ghcr.io/jamebal/jmalcloud:latest
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.git
|
||||
args:
|
||||
GIT_REPO: https://git.1080p.hk/chenpei/jmalcloud.git
|
||||
GIT_USERNAME: chenpei
|
||||
GIT_PASSWORD: jsjj654321
|
||||
TARGETPLATFORM: linux/amd64
|
||||
image: chenpei/jmalcloud:example
|
||||
environment:
|
||||
MONGODB_URI: mongodb://mongo:27017/jmalcloud
|
||||
TZ: Asia/Shanghai
|
||||
JVM_OPTS: "-Xms512m -Xmx2g"
|
||||
RUN_ENVIRONMENT: "prod"
|
||||
LOG_LEVEL: "warn"
|
||||
EXACT_SEARCH: "false"
|
||||
FILE_MONITOR: "true"
|
||||
FILE_ROOT_DIR: "/jmalcloud/files"
|
||||
TESS4J_DATA_PATH: "/jmalcloud/tess4j/datapath"
|
||||
MONITOR_IGNORE_FILE_PREFIX: ".DS_Store,._"
|
||||
ENCRYPTION_SECRET_KEY: ""
|
||||
ENCRYPTION_SALT: ""
|
||||
PUID: 0
|
||||
PGID: 0
|
||||
ports:
|
||||
- ${SERVER_PORT}:8088
|
||||
volumes:
|
||||
- ${RESOURCE_FILE_PATH}:/jmalcloud/files/
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
mongo:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8088/public/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 60s
|
||||
nginx:
|
||||
container_name: ${CONTAINER_NAME_PREFIX}_nginx
|
||||
image: ghcr.io/jamebal/jmalcloud-nginx:latest
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user