
podcastserver/backend本镜像是podcast-server应用的后端服务组件,负责处理核心业务逻辑、数据持久化、API服务提供及与前端/客户端的交互。作为播客服务器的核心,其主要用途包括:
通过以下命令快速启动容器,需提前配置数据库环境:
bashdocker run -d \ --name podcast-server-backend \ -p 8080:8080 \ -e SPRING_DATASOURCE_URL=jdbc:postgresql://db-host:5432/podcast_db \ -e SPRING_DATASOURCE_USERNAME=podcast_user \ -e SPRING_DATASOURCE_PASSWORD=secure_password \ -e LOG_LEVEL=INFO \ -v /host/data:/app/data \ -v /host/logs:/app/logs \ podcast-server-backend:latest
参数说明:
-p 8080:8080:映射容器内API服务端口到宿主机-e:设置环境变量(详见4.3节配置参数)-v:挂载宿主机目录到容器,用于数据持久化(/app/data存储业务数据,/app/logs存储日志)通过docker-compose.yml配置后端服务与依赖数据库的联动部署:
yamlversion: '3.8' services: backend: image: podcast-server-backend:latest container_name: podcast-backend restart: always ports: - "8080:8080" environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/podcast_db - SPRING_DATASOURCE_USERNAME=podcast_user - SPRING_DATASOURCE_PASSWORD=secure_password - SERVER_PORT=8080 - LOG_LEVEL=INFO - CORS_ALLOWED_ORIGINS=[***] volumes: - ./data:/app/data - ./logs:/app/logs depends_on: - db db: image: postgres:14-alpine container_name: podcast-db restart: always environment: - POSTGRES_DB=podcast_db - POSTGRES_USER=podcast_user - POSTGRES_PASSWORD=secure_password volumes: - postgres-data:/var/lib/postgresql/data volumes: postgres-data:
启动命令:
bashdocker-compose up -d
容器通过环境变量配置核心参数,常用参数如下表:
| 环境变量名 | 说明 | 默认值 | 示例值 |
|---|---|---|---|
SERVER_PORT | API服务监听端口 | 8080 | 9090 |
SPRING_DATASOURCE_URL | 数据库连接URL(支持PostgreSQL/MySQL) | - | jdbc:postgresql://db:5432/podcast_db |
SPRING_DATASOURCE_USERNAME | 数据库用户名 | - | podcast_user |
SPRING_DATASOURCE_PASSWORD | 数据库密码 | - | secure_password |
LOG_LEVEL | 日志级别(ERROR/WARN/INFO/DEBUG) | INFO | DEBUG |
CORS_ALLOWED_ORIGINS | 允许跨域请求的源(多个用逗号分隔) | * | http://localhost:3000,https://app.com |
APP_DATA_DIR | 业务数据存储目录(容器内路径) | /app/data | /custom/data |
JWT_SECRET | JWT认证密钥(用于用户登录) | 随机生成 | my-secret-key-*** |
JWT_EXPIRATION | JWT令牌过期时间(秒) | 86400(24小时) | 43200(12小时) |
容器内以下目录需通过宿主机挂载实现数据持久化:
/app/data:存储播客元数据、用户配置等业务数据/app/logs:存储应用运行日志(按日滚动)挂载示例:
bash-v /host/podcast/data:/app/data \ -v /host/podcast/logs:/app/logs
chmod 775 /host/data调整)JWT_SECRET,并通过HTTPS暴露服务(可配合Nginx反向代理实现)/app/data目录数据,避免数据丢失容器内置健康检查接口,通过GET /actuator/health访问,返回状态UP表示服务正常。
通过以下命令查看容器日志:
bashdocker logs -f podcast-server-backend
日志格式示例(INFO级别):
2024-05-20 10:30:00.123 INFO 1 --- [main] c.p.backend.Application: Started Application in 5.234 seconds (JVM running for 5.890) 2024-05-20 10:30:05.678 INFO 1 --- [nio-8080-exec-1] c.p.backend.controller.PodcastController: User 'admin' fetched 10 podcasts


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务