初探Swoft -- Swoft docker环境搭建

初探Swoft – Swoft docker环境搭建

在docker中搭建swoft的开发环境,swoft项目运行在docker中
网上提供了好几种搭建docker镜像的方法,下面采用的是使用DockerFile直接构建

主要有下面几个步骤

  1. 编写Dockerfile
  2. composer 安装 swoft项目
  3. 构造docker镜像,并把swoft项目共享到docker中

下面介绍每个步骤的详细操作

Dockerfile编写

swoft有提供官方的docker镜像,但是在镜像中已经安装好swoft,这样并不方便项目的编写,所以要对官方的Dockerfile略作修改

  • 到docker hub获取swoft镜像的Dockerfile
    时代复分

  • 修改官方Dockerfile

在这里插入图片描述

【注意】保留图中Dockerfile中,设置镜像 WORKERDIR的命令

  • 创建docker镜像
# 创建镜像
docker build -t swoft/swoft . 
# 查看镜像
docker images ps

【注意】

  1. 官方镜像中提供了的环境是 php7.2 及 swoole 4.4 ,有需要的也可以自行修改
  2. 若镜像构建速度过慢,建议更换docker源,当然网上也有其他的源,如下
# 编辑或创建 /etc/docker/daemon.json文件

{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/","https://hub-    mirror.c.163.com","https://registry.docker-cn.com"],
    "insecure-registries": ["10.0.0.12:5000"]
}

宿主机安装swoft项目

没啥好说的,直接composer安装即可

#安装swoft
composer create-project swoft/swoft Swoft
#安装依赖
composer install

【注意】
我当时安装的时候有提示要输入github的token,这是需要重新建立一个token,若没有提示的话,直接跳过即可
详细请看 👉👉生成github token

docker容器构建

这里的demo是开启swoft的http服务,所以需要对宿主机进行端口映射,这里我选择的是9501端口,即把宿主机的8080端口映射到容器的9501端口中

  • 修改swoft配置文件, 配置文件位置为 app/bean.php

在这里插入图片描述

  • 创建docker容器
# -p 参数,进行端口映射,即 宿主机端口:容器端口
# -v 共享目录, 宿主机的目录共享到容器中, 即 宿主机目录:容器内目录
docker run -itd --name swoft -p 8080:9501 -v /var/www/swoft/swoft:/var/www/swoft swoft
# 查看docker容器
docker ps -a
# 进入docker容器
docker exec -it {docker_container_id} bash
#退出docker容器
exit

这里稍作解释

-v 参数,设置宿主机共享目录,上方命令中是 -v /var/www/swoft/swoft:/var/www/swoft
冒号把命令分为两个部分,第一个是宿主机中swoft项目的位置,即 /var/www/swfot/swoft,这里可以自行灵活设置,而第二个 /var/www/swoft 是镜像的工作目录,也是可以在Dockerfile中修改的

下图是我的操作结果
在这里插入图片描述

  • 容器内部开启swoft的http服务
# 已经进入到容器内部,且进入到工作目录 /var/www/swoft中, 开启swoft的http服务
php ./bin/swoft http:start

在这里插入图片描述

  • 访问宿主机8080端口

之前构建docker容器的时候已经进行端口映射,所有对宿主机的请求都会映射到docker容器的9501端口

在这里插入图片描述


至此基于docker的swoft环境搭建完成,后期开发只需要更新宿主机的项目代码即可,docker会同步更新的

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值