php 通过docker搭建Hyperf项目
·
今天我们进行最方便的hyperf项目搭建方式启动一个hyperf的新项目
1. 创建好我们的Dockerfile、docker-compose.yml文件和一个空的文件夹data【也可以不是data,可以为任意名字的文件夹】

2. Dockerfile文件的编写【拉取hyperf框架】
# 1. 选用官方已经带 Swoole 的基础镜像【说明:8.2为php版本,v3.18为hyperf版本】
FROM hyperf/hyperf:8.2-alpine-v3.18-swoole
# 2. 换国内源(Alpine 安装依赖快)
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 3. 装 composer、常用扩展(git 用来拉包)
RUN apk add --no-cache \
git \
unzip \
&& wget -O /usr/local/bin/composer https://getcomposer.org/download/latest-stable/composer.phar \
&& chmod +x /usr/local/bin/composer \
&& composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# 4. 创建工作目录
WORKDIR /home/carver-hyperf
# 5. 一次性创建项目(--no-dev 可省,按需要)
# 注意:composer 会以当前目录为项目根,自动生成 .env / vendor 等
RUN composer create-project hyperf/hyperf-skeleton . --no-interaction --prefer-dist
# 6. 暴露端口
EXPOSE 9501
# 7. 默认启动命令
CMD ["php", "bin/hyperf.php", "start"]
3. docker-compose.yml文件的编写【主要为了映射端口等配置】
version: '3.8' # 使用较新的 Docker Compose 版本
services:
carver-hyperf-app: # 服务名称
build:
context: . # 使用当前目录作为构建上下文
dockerfile: Dockerfile # 指定 Dockerfile 文件
image: my-hyperf:3.1
container_name: carver-hyperf # 自定义容器名称
ports:
- "9501:9501" # 将宿主机的9501端口映射到容器的9501端口:cite[1]:cite[5]
restart: unless-stopped # 设置重启策略
# volumes:
# - ./data:/home/carver-hyperf # 挂载当前目录到容器工作目录,方便代码热更新
environment:
- TZ=Asia/Shanghai # 设置时区
working_dir: /home/carver-hyperf # 设置容器内工作目录
注意:volumes 挂载的宿主机项目目录先注释,等我们本地有自己的项目了( 将容器中的项目复制到我们的宿主机中的data目录中,上一节有讲复制容器项目文件到宿主机 ),再取消注释,避免宿主机的目录data为空映射到容器中后,直接覆盖了容器中的目录,导致容器中的目录也为空,项目启动失败。
4.在宿主机的根目录也就是Dockerfile所在的目录,执行命令【打包自己的镜像并执行为容器】
docker-compose up -d
- 执行结果【镜像打包成功,容器启动成功】

- 观察一下启动情况【状态启动成功】

5. 访问项目【项目访问成功】

温馨提示:
当修改完代码后,通过 CTRL + C 终止当前启动的进程实例,并重新执行 php bin/hyperf.php start 启动命令,因为该框架是常驻内存的哦!
更多推荐

所有评论(0)