当前位置: 首页 > news >正文

docker创建Webman + MySQL + Nginx容器

目录结构
webman-project/
├── docker-compose.yml
├── Dockerfile # Webman 的 PHP 容器镜像
├── nginx.conf
├── php/ # 存放 PHP 项目代码
│ ├── public/
│ ├── app/
│ ├── start.php
│ └── …
└── mysql_data/ # MySQL 数据持久化目录

  1. docker-compose.yml
version:'3.8'services:# Nginx(反向代理 + 静态资源)nginx: image: nginx:alpine container_name: webman-nginx ports: -"80:80"-"443:443"volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf - ./php/public:/var/www/html/public# Webman 的 public 目录depends_on: - webman networks: - webman-net# PHP 容器(运行 Webman)webman: build:.# 使用当前目录的 Dockerfilecontainer_name: webman-app ports: -"8787:8787"# 可选:直连访问 Webman 调试volumes: - ./php:/var/www/html# 项目代码挂载进去environment: -APP_ENV=production depends_on: - mysql networks: - webman-net command:["php","start.php","start"]# 启动 Webman# MySQL 数据库mysql: image: mysql:8.0 container_name: webman-mysql ports: -"3306:3306"environment: MYSQL_ROOT_PASSWORD:123456MYSQL_DATABASE: webman_db MYSQL_USER: webman_user MYSQL_PASSWORD: webman_pass volumes: - ./mysql_data:/var/lib/mysql networks: - webman-net command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci networks: webman-net: driver: bridge
  1. Dockerfile(PHP 8.1 容器)
FROM php:8.1-cli-alpine# 安装系统依赖 + Webman 必需的 PHP 扩展RUN apk update&&apkadd--no-cache\git\unzip\&&docker-php-ext-install -j$(nproc)\pcntl\posix\pdo_mysql\&&apk clean# 安装 ComposerCOPY--from=composer:latest /usr/bin/composer /usr/bin/composer# 设置工作目录WORKDIR /var/www/html# 如果本地还没有 Webman 项目,取消下面两行注释,全新安装# RUN composer create-project workerman/webman:~2.0 .# RUN composer require workerman/redis workerman/think-orm# 暴露 Webman 默认端口EXPOSE8787# 启动命令(注意:pid 文件等需要写入权限)CMD["php","start.php","start"]
  1. nginx.conf
upstream webman{server webman:8787;# 指向 webman 容器,端口 8787keepalive10240;}server{listen80;server_name localhost;root /var/www/html/public;# 静态文件直接由 Nginx 处理location ~*\.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)${expires 30d;add_header Cache-Control"public, immutable";}# 动态请求转发给 Webmanlocation /{try_files$uri@proxy;}location @proxy{proxy_set_header Host$host;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$remote_addr;proxy_set_header X-Forwarded-Proto$scheme;proxy_http_version1.1;proxy_set_header Connection"";proxy_pass http://webman;}}
  1. Webman 数据库配置(连接 MySQL)
    在 php/config/thinkorm.php 中配置数据库连接(以 ThinkORM 为例):
return['default'=>'mysql','connections'=>['mysql'=>['type'=>'mysql','host'=>'mysql',// 容器名,Docker 内部 DNS'port'=>3306,'database'=>'webman_db','username'=>'webman_user','password'=>'webman_pass','charset'=>'utf8mb4','collation'=>'utf8mb4_unicode_ci',],],];
  1. 启动完整环境

1. 创建项目目录

mkdir webman-project && cd webman-project
mkdir php mysql_data

2. 创建上面 4 个文件(docker-compose.yml, Dockerfile, nginx.conf, php/…)

3. 构建并启动

docker-compose up -d --build

4. 查看状态

docker-compose ps

5. 查看 Webman 日志

docker-compose logs -f webman

http://www.rkmt.cn/news/1395893.html

相关文章:

  • “创·在上海”金融科技大赛来袭,丰厚奖励邀全球伙伴共筑产业新高地!
  • 树莓派4B+Python+Adafruit_PCA9685:手把手教你用键盘实时控制舵机(附完整代码)
  • Lovable招聘系统搭建避坑手册:90%团队踩过的7个致命错误及3步修复法
  • 5分钟快速上手:碧蓝航线Alas自动化脚本终极指南
  • 不止是截图!用AssetStudio深度挖掘《碧蓝档案》bundle文件里的宝藏立绘与UI
  • 看门狗机制:从锁过期到自动续期的工程实践——Redisson分布式锁的生命线
  • Zotero中文文献管理终极指南:3步安装茉莉花插件提升科研效率
  • 免费英雄联盟回放播放器终极指南:永久解决版本兼容问题
  • 2026 德国进口橱柜推荐榜单:权威排行与深度选购指南 - GrowthUME
  • 人社部生殖健康咨询技术培训,专业守护生殖健康 - 深鉴新闻
  • 视频智能分析终极指南:让AI自动整理你的视频内容精华
  • BERT-DPCNN融合模型在农业短文本分类中的实践与优化
  • 3步打造你的专属音乐世界:LX Music Desktop免费开源跨平台音乐播放器指南
  • 大语言模型技术解析:从Transformer架构到产业应用实践
  • 冲上热搜第9!芯片半导体为何暴涨?揭秘背后核心逻辑
  • BioIVT人源生物样本全面解析:血液、体液、组织样本在药物研发与生命科学研究中的应用
  • 避坑指南:RV1126上RKMedia音频编码与解码的那些“坑”与解决方案
  • 从高拟真到真可用,LongCat-Video-Avatar 1.5 正式开源
  • 终极免费Switch模拟器Ryujinx:从零开始畅玩Switch游戏的完整指南
  • 【Lovable平台性能调优白皮书】:QPS从83→2147的压测数据对比与内核级参数优化路径
  • 2026 网安就业有多香?这 4 类岗位常年缺人,入门毫无压力
  • AI代码质量危机:1.7倍缺陷率背后的修复策略与工程实践
  • 2026 视频做宝典:怎么用 AI 生成带货视频?高性价比不排队工具盘点
  • 超导量子计算机发展路线与关键技术解析
  • 自托管PostHog部署实战:避开6大陷阱,构建稳定数据分析平台
  • Windows 10 / Win10蓝牙已关闭,蓝牙开关消失,设备管理器找不到蓝牙选项
  • 番茄小说下载器:5分钟快速上手的全平台小说下载解决方案
  • Win10服务管理进阶:手把手教你写一个带菜单的交互式批处理脚本
  • Linux内核container_of宏的深度解析与实战应用指南
  • 终极指南:5分钟免费解锁WeMod专业版功能,告别付费限制