fix: 删除多余MySQL容器,改用1Panel已有MySQL(172.17.0.1:3306)
This commit is contained in:
@@ -5,9 +5,9 @@ spring:
|
|||||||
application:
|
application:
|
||||||
name: my-blog-backend
|
name: my-blog-backend
|
||||||
datasource:
|
datasource:
|
||||||
url: jdbc:mysql://${DB_HOST:mysql}:${DB_PORT:3306}/${DB_NAME:my_blog}?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
|
url: jdbc:mysql://${DB_HOST:172.17.0.1}:${DB_PORT:3306}/${DB_NAME:my_blog}?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&createDatabaseIfNotExist=true
|
||||||
username: ${DB_USER:root}
|
username: ${DB_USER:root}
|
||||||
password: ${DB_PASSWORD:root123456}
|
password: ${DB_PASSWORD:123456}
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
hikari:
|
hikari:
|
||||||
connection-timeout: 30000
|
connection-timeout: 30000
|
||||||
|
|||||||
+2
-31
@@ -1,42 +1,16 @@
|
|||||||
version: '3.8'
|
version: '3.8'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
mysql:
|
|
||||||
image: mysql:8.0
|
|
||||||
container_name: blog-mysql
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
MYSQL_ROOT_PASSWORD: root123456
|
|
||||||
MYSQL_DATABASE: my_blog
|
|
||||||
TZ: Asia/Shanghai
|
|
||||||
command:
|
|
||||||
- --default-authentication-plugin=mysql_native_password
|
|
||||||
- --character-set-server=utf8mb4
|
|
||||||
- --collation-server=utf8mb4_unicode_ci
|
|
||||||
ports:
|
|
||||||
- "3307:3306"
|
|
||||||
volumes:
|
|
||||||
- mysql_data:/var/lib/mysql
|
|
||||||
- ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-proot123456"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 10
|
|
||||||
|
|
||||||
backend:
|
backend:
|
||||||
build: ./backend
|
build: ./backend
|
||||||
container_name: blog-backend
|
container_name: blog-backend
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
|
||||||
mysql:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
environment:
|
||||||
DB_HOST: mysql
|
DB_HOST: 172.17.0.1
|
||||||
DB_PORT: 3306
|
DB_PORT: 3306
|
||||||
DB_NAME: my_blog
|
DB_NAME: my_blog
|
||||||
DB_USER: root
|
DB_USER: root
|
||||||
DB_PASSWORD: root123456
|
DB_PASSWORD: "123456"
|
||||||
TZ: Asia/Shanghai
|
TZ: Asia/Shanghai
|
||||||
ports:
|
ports:
|
||||||
- "8089:8080"
|
- "8089:8080"
|
||||||
@@ -49,6 +23,3 @@ services:
|
|||||||
- backend
|
- backend
|
||||||
ports:
|
ports:
|
||||||
- "8088:80"
|
- "8088:80"
|
||||||
|
|
||||||
volumes:
|
|
||||||
mysql_data:
|
|
||||||
|
|||||||
@@ -1,88 +0,0 @@
|
|||||||
-- 创建数据库
|
|
||||||
CREATE DATABASE IF NOT EXISTS `my_blog` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
||||||
USE `my_blog`;
|
|
||||||
|
|
||||||
-- 1. 分类表
|
|
||||||
CREATE TABLE IF NOT EXISTS `category` (
|
|
||||||
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
`name` VARCHAR(50) NOT NULL UNIQUE,
|
|
||||||
`description` VARCHAR(255),
|
|
||||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- 2. 文章表
|
|
||||||
CREATE TABLE IF NOT EXISTS `post` (
|
|
||||||
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
`title` VARCHAR(255) NOT NULL,
|
|
||||||
`summary` VARCHAR(500),
|
|
||||||
`content` LONGTEXT NOT NULL,
|
|
||||||
`author` VARCHAR(50) DEFAULT '旺总',
|
|
||||||
`category_name` VARCHAR(50) DEFAULT '技术杂谈',
|
|
||||||
`tags` VARCHAR(255),
|
|
||||||
`read_time` VARCHAR(20) DEFAULT '3 min',
|
|
||||||
`views` INT DEFAULT 0,
|
|
||||||
`likes` INT DEFAULT 0,
|
|
||||||
`status` VARCHAR(20) DEFAULT 'PUBLISHED',
|
|
||||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- 3. 评论表
|
|
||||||
CREATE TABLE IF NOT EXISTS `comment` (
|
|
||||||
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
`post_id` BIGINT NOT NULL,
|
|
||||||
`author` VARCHAR(50) NOT NULL,
|
|
||||||
`content` TEXT NOT NULL,
|
|
||||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
INDEX `idx_post_id` (`post_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- 插入默认分类
|
|
||||||
INSERT IGNORE INTO `category` (`name`, `description`) VALUES
|
|
||||||
('云原生 & Linux', '容器化编排、GCP/云服务器运维、系统调优与网络配置实战'),
|
|
||||||
('Java & Spring Boot', 'Spring Boot 3 微服务架构、JPA 数据库持久化与后端工程规范'),
|
|
||||||
('AI & 本地模型', 'Ollama 本地大模型部署、DeepSeek R1 性能压测与应用集成'),
|
|
||||||
('全栈开发 & CI/CD', '前后端分离架构、Gitea Actions 自动化流水线交付');
|
|
||||||
|
|
||||||
-- 插入预置精品文章
|
|
||||||
INSERT INTO `post` (`title`, `summary`, `content`, `author`, `category_name`, `tags`, `read_time`, `views`, `likes`, `created_at`)
|
|
||||||
SELECT
|
|
||||||
'云原生实践:在 Google Cloud 台湾节点搭建高性能 Ubuntu 与 1Panel',
|
|
||||||
'本文记录了如何通过 GCP 赠金在亚洲低延迟机房部署 4核16G 高性能云服务器,并使用现代化容器面板 1Panel 进行运维管理实录。',
|
|
||||||
'# 云原生实践:在 Google Cloud 台湾节点搭建高性能服务器\n\n在挑选云服务器的过程中,综合对比了各大厂商的免费策略与性能表现,最终选择了 **Google Cloud 台湾节点 (`asia-east1`)**。\n\n## 核心硬件与网络配置\n- **规格**:`e2-standard-4`(4 vCPU,16 GB 内存)\n- **系统**:Ubuntu 22.04 LTS (x86_64)\n- **延迟**:到中国大陆仅 30~50ms,操作极为丝滑。\n\n## 为什么采用 1Panel 面板?\n相比传统臃肿的面料,1Panel 深度拥抱 **Docker 容器化**,所有应用(MySQL、OpenResty、Gitea)完全容器隔离,真正做到“环境随用随建,数据挂载持久化”。\n\n```bash\n# 快速检查 Docker 运行状态\ndocker ps --format "table {{.Names}}\\t{{.Status}}\\t{{.Ports}}"\n```\n\n> 💡 **运维心得**:永远在云平台控制台统一放行防火墙端口,切勿盲目在系统内部启用 UFW,避免失联风险。',
|
|
||||||
'旺总',
|
|
||||||
'云原生 & Linux',
|
|
||||||
'GCP,Ubuntu,1Panel,Linux',
|
|
||||||
'4 min',
|
|
||||||
648,
|
|
||||||
52,
|
|
||||||
NOW()
|
|
||||||
WHERE NOT EXISTS (SELECT 1 FROM `post` WHERE `title` = '云原生实践:在 Google Cloud 台湾节点搭建高性能 Ubuntu 与 1Panel');
|
|
||||||
|
|
||||||
INSERT INTO `post` (`title`, `summary`, `content`, `author`, `category_name`, `tags`, `read_time`, `views`, `likes`, `created_at`)
|
|
||||||
SELECT
|
|
||||||
'探索本地大模型:从 Ollama 运行 DeepSeek R1 到 CPU 推理性能调优',
|
|
||||||
'深度解析在纯 CPU 服务器上运行 DeepSeek R1 和通义千问 2.5 的真实表现,揭开 2050 Token 预填充延迟背后的机制。',
|
|
||||||
'# 探索本地大模型:从 Ollama 到 Open WebUI 性能调优实战\n\n近期 DeepSeek R1 推理思考模型火遍全球,我们在 4核16G 的服务器上进行了本地大模型的全链路压测。\n\n## 1. 架构搭建\n- **模型发动机**:`Ollama` 容器\n- **交互界面**:`Open WebUI` 容器\n- **网络通信**:通过 Docker 网关 `http://172.17.0.1:11434` 极速直连\n\n## 2. 性能排查与调优秘籍\n测试过程中遇到了“每次提问卡顿 50 秒”的问题,经过 `top` 分析和指标剖析:\n1. **解除容器 CPU 配额**:确保 4 线程全开(`eval rate` 提升至 14 tokens/s);\n2. **内存永久常驻**:注入 `OLLAMA_KEEP_ALIVE=-1`,避免 5 分钟超时后重新读盘;\n3. **清空全局默认 Prompt**:消除了默认附带的 2050 历史 Token,读题耗时从 60s 骤降至 0.2s!\n\n```bash\n# 测试模型运行性能\ndocker exec -it 1Panel-ollama-nzre ollama run qwen2.5:1.5b --verbose\n```\n\n> 纯 CPU 跑 7B 参数是物理带宽瓶颈,日常开发推荐搭配 1.5B~3B 模型,速度与逻辑达到最佳平衡!',
|
|
||||||
'旺总',
|
|
||||||
'AI & 本地模型',
|
|
||||||
'DeepSeek,Ollama,OpenWebUI,性能调优',
|
|
||||||
'6 min',
|
|
||||||
982,
|
|
||||||
88,
|
|
||||||
NOW()
|
|
||||||
WHERE NOT EXISTS (SELECT 1 FROM `post` WHERE `title` = '探索本地大模型:从 Ollama 运行 DeepSeek R1 到 CPU 推理性能调优');
|
|
||||||
|
|
||||||
INSERT INTO `post` (`title`, `summary`, `content`, `author`, `category_name`, `tags`, `read_time`, `views`, `likes`, `created_at`)
|
|
||||||
SELECT
|
|
||||||
'全栈工程师实战:Spring Boot 3 + MySQL 8.0 持久化与 Gitea CI/CD 自动化交付',
|
|
||||||
'从零构建工业级 Spring Boot 3 分层架构,结合 MySQL 8.0 数据库持久化存储与私有 Gitea Actions 自动化流水线。',
|
|
||||||
'# 全栈工程化实践:Spring Boot 3 + MySQL 8.0 + CI/CD 自动化\n\n现代化开发的精髓在于**“把数据交给专业数据库持久化,把重复劳动交给自动化流水线”**。\n\n## 全栈架构一览\n```text\n[开发者本地 IDEA] ──git push──▶ [私有 Gitea 仓库]\n │\n (Gitea Actions 触发流水线)\n ▼\n [Docker Compose 全栈构建]\n │\n ┌───────────────────────────┼───────────────────────────┐\n ▼ ▼ ▼\n [MySQL 8.0 容器] [Spring Boot 3 容器] [Nginx 静态反代容器]\n```\n\n## 数据持久化规范\n- 数据文件挂载至命名卷 `mysql_data`,容器重启或重建数据零丢失;\n- Spring Data JPA 实现对象关系映射,自动完成数据库结构维护;\n- 统一 RESTful API 与响应封装,全栈开发得心应手!',
|
|
||||||
'旺总',
|
|
||||||
'全栈开发 & CI/CD',
|
|
||||||
'Spring Boot,MySQL,JPA,CI/CD',
|
|
||||||
'5 min',
|
|
||||||
756,
|
|
||||||
64,
|
|
||||||
NOW()
|
|
||||||
WHERE NOT EXISTS (SELECT 1 FROM `post` WHERE `title` = '全栈工程师实战:Spring Boot 3 + MySQL 8.0 持久化与 Gitea CI/CD 自动化交付');
|
|
||||||
Reference in New Issue
Block a user