最近终于把docker学完了!试着自己compose编排一个php环境,然后一堆问题,果断放弃。最后,选了laradock。
直接线上部署多项目。注:使用的是阿里云学生机
下载
laradock github 如果下载缓慢,可以试着放到迅雷中下载
在自己服务器上找个地方放着吧!
安装
进入laradock
cd laradock
复制.env配置文件
cp env-example .env
修改.env
配置文件
1 | 因为我使用宝塔部署了一套lnmp,所以,端口都被占用,只好换端口 |
启动 linux注意更改文件夹权限
docker-compose up -d nginx mysql redis mongo beanstalkd elasticsearch kibana
之后,就可以在上图public目录下新建一个index.php,访问http://你的ip:802
打印hello word试试。
配置多项目
进入laradock/nginx/sites
目录
里面有很多ngixn配置模板,可以自行cp使用
laravel项目:laravel.conf.example
thinkphp项目:default.conf
重启docker中的nginx
docker-compose restart nginx
按正常流程,这时候就需要配置/etc/hosts
文件了。但是,因为我用的是802端口,所以,这时候需要的是配置主机的nginx
宝塔nginx配置文件路径:/www/server/panel/vhost/nginx
其他可以参考 https://luckilyh.com/2020/06/21/linux-configuration-file-path/ 获取nginx配置文件
1 | 新建 dockerlaravel.luckilyh.com.conf |
重启主机nginx
service nginx restart
是不是看到了熟悉的laravel界面
laravel项目下配置变化
.env
的配置信息
- mysql:
1 | DB_CONNECTION=mysql |
- redis:
1 | REDIS_HOST=redis |
- beanstalkd:
1 | QUEUE_HOST=beanstalkd |
添加新镜像或者修改.env文件
1 | 更新workspace |
swoole
修改 .env
1 | WORKSPACE_INSTALL_SWOOLE=true |
mongo
修改 .env
1 | WORKSPACE_INSTALL_MONGO=true |
laravels
在 laradock/workspace/Dockerfile
最后添加一行:
1 | EXPOSE 5200 #socket端口,laravel-s默认为5200 |
在 nginx
中修改:
1 | # 通过 IP:Port 连接 |
在 laravel
中 .env
中添加
1 | LARAVELS_LISTEN_IP=workspace #服务器IP地址 |
操作命令
1 | php bin/laravels {start|stop|restart|reload|info|help} |
websocket访问
1 | ws://laravel.test/ws |
进入laravel项目
常见问题
Service ‘workspace’ failed to build
fatal: unable to access ‘https://github.com/creationix/nvm.git/': Failed to connect to github.com port 443: Connection refused
有道翻译:致命:无法访问“https://github.com/creationix/nvm.git/”:连接到github.com 443端口失败:连接被拒绝
查看访问 github.com 确实打不开了
方法见: https://luckilyh.com/2020/10/13/github-can-not-access/
laravel 相应缓慢
网上查说windows的io影响,可能这个也会有影响。具体怎么调我也不知道。
我原本相应也是正常的,稳定50ms左右。然后docker更新WSL 2就出问题了,相应飙升到2-3s。凉凉。心哇凉哇凉的。
最后,不使用WSL 2就OK了
附录: