使用 Docker 创建 Hyperf 项目

@[TOC]

安装Hyperf开发容器

docker run -d --name user_center \
  --restart=always \
  #映射到宿主机目录,这样我们就直接在/home/wwwroot/user_center开发
  -v /home/wwwroot/user_center:/hyperf-skeleton \ 
  # 9501提供http服务,9504提供json-rpc服务
  -p 9501:9501 -p 9504:9504 \ 
  -it --entrypoint /bin/sh \
  hyperf/hyperf:7.3-alpine-cli

安装Composer

docker exec -it user_center bash #进入容器
#下载COMPOSER
wget https://github.com/composer/composer/releases/download/1.9.0/composer.phar
#修改为可执行
chmod u+x composer.phar
#复制到/usr/local/bin/ 这样就可以直接运行composer 命令
mv composer.phar /usr/local/bin/composer
#修改仓库地址为阿里云
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer

创建项目,以下命令都是在容器内部执行

cd /hyperf-skeleton
composer create-project hyperf/hyperf-skeleton=1.1.* #直接一路回车不安装附加组件

安装需要用到的组件

composer require illuminate/hashing gregwar/captcha \ hyperf/validation hyperf/translation hyperf/constants phper666/jwt-auth:~2.0.1 hyperf/config-aliyun-acm hyperf/json-rpc hyperf/rpc-server

illuminate/hashing laravel的hash组件
gregwar/captcha 验证码组件
hyperf/validation 官方验证组件
hyperf/translation 多种语言组件
hyperf/translation 官方枚举类
phper666/jwt-auth JWT组件
hyperf/config-aliyun-acm 阿云配置中心组件
hyperf/json-rpc hyperf/rpc-server 官方RPC服务组件

发布组件配置

php bin/hyperf.php jwt:publish --config
php bin/hyperf.php vendor:publish hyperf/translation
php bin/hyperf.php vendor:publish hyperf/validation

配置项目

编辑项目根目录的.env文件,配置好数据库和redis

APP_NAME=user_center

DB_DRIVER=mysql
DB_HOST=192.168.137.200
DB_PORT=3306
DB_DATABASE=user_center
DB_USERNAME=root
DB_PASSWORD=123456
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
DB_PREFIX=

REDIS_HOST=192.168.137.200
REDIS_AUTH=(null)
REDIS_PORT=6379
REDIS_DB=0

开发环境下的热更新

下载https://github.com/ha-ni-cc/hyperf-watch里的watch文件到项目根目录,然后启动只需要执行php watch,这样我们修改文件,就会自动重启进程

数据表设计

创建表

目前我们只创建了两个表user和wx_user详见迁移文件
user表
https://github.com/donjan-deng/la-user-cen...
wx_user表
https://github.com/donjan-deng/la-user-cen...

数据填充

我们初始化了一个管理员帐号
https://github.com/donjan-deng/la-user-cen...

运行迁移

创建数据库

php bin/hyperf.php migrate

填充数据

php bin/hyperf.php db:seed

有关数据迁移的使用方法可参阅官方文档https://hyperf.wiki/#/zh/db/migration

项目源码

项目源码已发布到github https://github.com/donjan-deng/la-user-cen...

博客:《PHP 微服务练兵》系列教程

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 2

数据填充的时候,user表有很多字段不能为空导致填充失败。

4年前 评论
Donjan (楼主) 4年前

为什么不把composer集成到container里面呢?感觉提供一个docker-compose.yml文件更好吧

4年前 评论
Donjan (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!