跳到主要内容

本地多容器开发环境部署与 HTTPS 配置指南

· 阅读需 4 分钟
Ying Bai
Full Stack Engineer

1. 项目结构与 docker-compose.yml

本地项目包含 4 个服务:

  • api:Python FastAPI 应用(使用 uvicorn 运行)
  • console:前端管理控制台(Node.js + pnpm)
  • www:前端网站(Next.js + pnpm)
  • nginx:统一反向代理和域名路由

示例 docker-compose.yml

services:
api:
build:
context: ./api.aigc.pub
dockerfile: Dockerfile.dev
container_name: api
volumes:
- ./api.aigc.pub:/app
ports:
- "7080:7080"
networks:
- aigc_net
command: uv run uvicorn main:app --host 0.0.0.0 --port 7080 --reload

console:
build:
context: ./console.aigc.pub
dockerfile: Dockerfile.dev
container_name: console
ports:
- "3200:3200"
networks:
- aigc_net
command: pnpm dev

www:
build:
context: ./www.aigc.pub
dockerfile: Dockerfile.dev
container_name: www
ports:
- "3100:3100"
networks:
- aigc_net
command: pnpm dev

nginx:
build:
context: ./nginx
container_name: nginx
ports:
- "80:80"
- "443:443" # 或者 "8443:443" 避免与 macOS 占用端口冲突
depends_on:
- api
- console
- www
networks:
- aigc_net

networks:
aigc_net:
driver: bridge

注意:ports 需写成 "宿主机端口:容器端口" 的字符串格式,否则会报错 invalid containerPort


2. .dockerignore 推荐写法

在根目录添加 .dockerignore 避免无关文件进入构建上下文:

# Node.js 依赖
node_modules
npm-debug.log
pnpm-lock.yaml
yarn.lock

# Python 虚拟环境
.venv
__pycache__/
*.pyc

# 系统文件
.DS_Store
.env
*.log

# 构建产物
dist
build
.cache

3. 本地域名绑定

在 macOS /etc/hosts 添加:

127.0.0.1 www.aigc.pub
127.0.0.1 console.aigc.pub
127.0.0.1 api.aigc.pub

4. Nginx 域名路由配置

nginx.conf 中添加反向代理:

server {
listen 80;
server_name console.aigc.pub;
location / {
proxy_pass http://console:3200;
}
}

server {
listen 80;
server_name www.aigc.pub;
location / {
proxy_pass http://www:3100;
}
}

server {
listen 80;
server_name api.aigc.pub;
location / {
proxy_pass http://api:7080;
}
}

5. 本地 HTTPS 配置

方法 1:使用 mkcert 生成本地可信证书

  1. 安装 mkcert
brew install mkcert nss
mkcert -install
  1. 生成证书(在 nginx/certs/ 目录下)
mkcert console.aigc.pub www.aigc.pub api.aigc.pub
  1. 修改 Nginx 配置支持 HTTPS
server {
listen 443 ssl;
server_name console.aigc.pub;

ssl_certificate /etc/nginx/certs/console.aigc.pub.pem;
ssl_certificate_key /etc/nginx/certs/console.aigc.pub-key.pem;

location / {
proxy_pass http://console:3200;
}
}
  1. docker-compose.yml 中暴露 443 端口:
ports:
- "80:80"
- "443:443" # 或 "8443:443"

方法 2:使用自签名证书

mkdir -p nginx/certs
openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout nginx/certs/selfsigned.key \
-out nginx/certs/selfsigned.crt

Nginx 中引用:

ssl_certificate /etc/nginx/certs/selfsigned.crt;
ssl_certificate_key /etc/nginx/certs/selfsigned.key;

6. 常见问题排查

502 Bad Gateway

  • 如果本地使用了代理,先检查代理是否跳过了绑定域名的解析
  • 检查目标容器是否正常运行:docker ps
  • 确认服务在容器内可访问(在 nginx 容器中执行):
curl http://console:3200
curl http://www:3100
curl http://api:7080
  • 确认 nginx.confproxy_pass 指向服务容器名+端口

invalid containerPort: 443

  • 确保写法是 "443:443"(字符串格式)
  • 避免只写 - 443
  • 在 macOS 上如被系统占用,可改为 "8443:443"

7. 启动项目

docker compose up --build

关于AI的思考(1)

· 阅读需 9 分钟
Ying Bai
Full Stack Engineer

最近在做一个商品运营数据分析的项目,项目中开始大量使用AI工具,在这个过程中感觉AI在数据分析工作中确实能替代部分环节,但无法完全取代人类的战略判断与业务洞察。以下从技术能力、实际应用和未来趋势三个维度展开分析:

一、程序能替代的数据分析工作

  1. 标准化数据处理与基础分析
    程序可自动化完成数据采集、清洗、汇总等重复性任务。例如,通过Python的Pandas库或SQL数据库查询,程序能快速处理销售数据、库存周转率等指标,并生成可视化报表。沃尔玛的销售预测模型通过时间序列分析和多模型集成,实现了库存周转率提升30%。此外,Adobe Analytics等工具支持实时数据采集和跨渠道分析,帮助企业快速定位销售波动原因。

  2. 预测建模与趋势判断
    机器学习模型可预测销售趋势、库存需求和顾客行为。例如,某家居品牌通过Transformer模型提前3-7天预判潜力品类,新品点击率提升200%;店+AI铺补调系统结合门店画像和商品生命周期分析,实现全国200多家门店配补调全自动化。MarketUP的智能推荐引擎通过“商品-人群-场景”三维匹配算法,帮助服饰品牌测试期GMV提升217%。

  3. 实时监控与异常预警
    程序能实时监测关键指标并触发预警。例如,微秒数智的AI动态感知引擎可识别货架缺货、临期商品,帮助连锁商超将缺货率下降35%,补货效率提升5倍;量化交易系统通过毫秒级数据处理,在金融市场中实现高频策略执行。类似逻辑可迁移至商品运营,如实时监控竞品价格波动并自动调整促销策略。

  4. 非结构化数据解析
    NLP技术可处理用户评论、市场动态等非结构化数据。例如,医疗领域通过spaCy和NLTK提取病历中的实体和关系,构建知识图谱;某美妆品牌分析用户弹幕数据,标注“价格敏感”“品质关注”等心理标签,优化门店动线后客单价增长25%。

二、程序难以替代的核心能力

  1. 战略决策与业务洞察
    数据分析需结合行业暗知识与市场动态。例如,某零食品牌通过人工分析用户差评,发现“功能入口隐蔽”背后是隐私担忧,调整后转化率提升60%。程序无法理解品牌定位、长期战略等复杂因素,如是否为维护品牌形象而牺牲短期销量。

  2. 异常情况处理与伦理判断
    极端事件(如疫情、政策变动)需人工调整模型假设。例如,农夫山泉通过业务员采集的陈列图片数据,结合市场经验优化零售点管理。此外,数据伦理问题(如隐私保护、模型偏见)需人类制定策略,程序仅能执行匿名化等技术手段。

  3. 跨部门协作与资源整合
    商品运营需协调供应链、市场、销售等多部门。例如,GitLab通过全员远程协作手册强化文化共识,而程序无法替代面对面沟通中的信任建立与资源协调。某3C品牌通过RPA与供应链API对接优化库存,但仍需人工与供应商谈判成本。

  4. 创意策划与用户共情
    促销活动设计、用户体验优化等需人文洞察。例如,某美妆品牌通过“AI外呼+LBS热力图”组合策略提升潜客到店率89%,其核心在于人工对用户心理的精准把握。程序生成的营销文案可能缺乏情感共鸣,需人工润色。

三、未来趋势:人机协作的新范式

  1. 工具进化:从替代到增强
    AI工具正从“执行者”转向“伙伴”。例如,Claude 4可解析口头需求生成PRD大纲,Notion AI自动转化为带交互说明的模板;飞书妙计对会议录音的“需求关键词提取”准确率达92%,辅助运营经理快速捕捉决策要点。

  2. 岗位分化:基础层与高阶层
    基础数据分析岗位(如数据清洗、报告生成)将逐步自动化,而高阶职位需求爆发。例如,系统架构师需求增长120%,年薪可达普通程序员的2-4倍;AI产品运营经理需同时掌握工具应用与业务洞察,薪资溢价显著。

  3. 能力重构:T型人才崛起
    未来从业者需具备“技术深度×领域广度”的复合能力。例如,程序员学习金融知识成为分布式系统专家,年薪从30万提升至80万;数据分析师需掌握法学+技术的复合能力,处理数据伦理风险。

四、落地建议

  1. 分阶段部署工具

    • 初级阶段:引入BI工具(如Tableau)和RPA,自动化数据报表与库存预警。
    • 进阶阶段:部署机器学习模型预测销售趋势,结合NLP分析用户反馈。
    • 高阶阶段:构建全链路智能系统,如店+AI铺补调、MarketUP自动化引擎,实现策略闭环。
  2. 建立人机协作机制

    • 程序负责执行标准化任务(如预测、监控),人类聚焦战略决策与异常处理。
    • 定期复盘模型效果,例如通过A/B测试验证促销策略,某零食品牌通过MarketUP的AB测试模块迭代效率提升8倍。
  3. 培养复合型人才

    • 运营人员需学习AI工具应用(如DeepSeek、飞书妙计),提升数据分析效率。
    • 技术人员需了解业务逻辑,避免模型脱离实际场景。例如,开发铺补调系统时需融入商品生命周期、门店等级等业务规则。

结论

程序可替代商品运营经理数据分析中的执行层工作(如数据处理、预测建模、实时监控),但无法替代战略决策、业务洞察、伦理判断等核心能力。未来趋势是人机协作——程序作为工具提升效率,人类专注于创造性工作。企业应分阶段部署技术工具,同时培养兼具数据能力与业务敏感度的复合型人才,在AI浪潮中构建不可替代的竞争力。

🛡 在 AlmaLinux 上使用 Certbot 免费申请通配符 SSL 证书并部署到 Nginx(支持 Cloudflare)

· 阅读需 4 分钟
Ying Bai
Full Stack Engineer

在构建网站或部署应用时,为所有子域启用 HTTPS 是常见的需求。本文将详细介绍如何在 AlmaLinux 上使用 Certbot + DNS API 方式免费申请 Let's Encrypt 的通配符 SSL 证书,并在 Nginx 中部署使用。以 Cloudflare 为 DNS 服务商为例。

如何将程序包分享到PyPi

· 阅读需 4 分钟
Ying Bai
Full Stack Engineer

要将 Python 开发的命令行工具发布出去供他人使用,可按以下步骤操作:

1. 项目结构与配置

  • 项目结构:构建一个合理的项目结构,示例如下:
my_command_line_tool/
├── my_command_line_tool/
│ ├── __init__.py
│ └── main.py
├── tests/
│ └── test_main.py
├── setup.py 或 pyproject.toml
├── README.md
└── LICENSE