laradock初体验

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: laravel这个框架也用了很久,一直使用官方提供 Homestead 作为本地开发环境是一个虚拟机,跟 docker 比,它占用体积太大,启动速度慢,同时响应速度很慢, docker 这种更方式,可以轻松方便的搭建整套 PHP 开发环境。

容器技术docker已经火了很久了,之前只是简单的看了些入门的文档,简单的体验了一下,最近看到一篇docker的文章,开头列出了一些招聘中对docker的要求,下面也详细讲了docker的使用,受益匪浅,这里记录下我在php环境中使用docker技术的初体验,在centos7.4中使用laradock搭建laravel环境。

安装docker

docker的介绍和价值不再说了,基本使用方法请参考这篇文章。
最为详细的Docker入门指南

安装docker-compose

安装Docker-Compose之前,请先安装 python-pip
安装 python-pip
1、首先检查linux有没有安装python-pip包,终端执行 pip -V
2、没有python-pip包就执行命令 yum -y install epel-release
3、执行成功之后,再次执行yum -y install python-pip
4、对安装好的pip进行升级 pip install --upgrade pip

安装Docker-Compose
1、终端执行:pip install docker-compose --ignore-installed requests
2、检查docker-compose 安装:docker-compose -version

安装laradock

因为我一直是从事php开发的,laravel这个框架也用了很久,一直使用官方提供 Homestead 作为本地开发环境是一个虚拟机,跟 docker 比,它占用体积太大,启动速度慢,同时响应速度很慢, docker 这种更方式,可以轻松方便的搭建整套 PHP 开发环境。这里就用laradock使用体验记录下来,给需要的人参考。

  • 前置条件:docker,git 安装好
  • 克隆laradock。
//比如在/var/www/html 目录
# cd /var/www/html
# git clone https://github.com/Laradock/laradock.git
  • 创建环境变量
# cd /var/www/html/laradock/
# cp env-example .env 
  • 启动需要的服务
# docker-compose up -d nginx mysql redis phpmyadmin workspace

我在前面几步没有遇到问题,在这个步骤提示安装时候文件权限有问题,其他服务都能启用,workspache服务不能启用,导致无法进入workspache执行例如:php aritisan ,composer,node等命令,后来经过github中找答案发现是最新版本不稳定有问题v7.8.0,然后重新检出v7.7.0后重新构建可以用了。

创建laravel项目测试

  • 在laradock同级目录创建wwwroot目录,即/var/www/html/wwwroot
  • 修改/var/www/html/laradock/.env文件

    # APP_CODE_PATH_HOST=../wwwroot/
  • 重启workspace容器并进入该容器,进入后会进入容器内目录/var/www,这个目录对应操作系统的/var/www/html/wwwroot。

    # docker-compose exec workspace bash
  • 创建laravel项目,这个目录就可以操作composer命令,我们按照laravel官方的文档操作创建项目即可,这里不在详述。
  • 配置laravel项目.env文件,这里区别于之前配置,比如MySQL、redis等服务host链接配置。

    # DB_CONNECTION=mysql
    # DB_HOST=mysql
    # DB_PORT=3306
    # DB_DATABASE=default
    # DB_USERNAME=root
    # DB_PASSWORD=root
    # 
    # BROADCAST_DRIVER=log
    # CACHE_DRIVER=file
    # QUEUE_CONNECTION=sync
    # SESSION_DRIVER=file
    # SESSION_LIFETIME=120
    # 
    # REDIS_HOST=redis
    # REDIS_PASSWORD=null
    # REDIS_PORT=6379
  • nginx配置,切到目录/var/www/html/laradock/nginx/sites/,这里配置类似nginx的多项目配置,有默认的可以参考,配置成自己的域名对应项目目录写容器中地址/var/www/项目目录名/public即可,然后容器命令重启nginx容器,然后通过浏览器访问服务即可。例如:卓上一品

    // 切到laradock目录操作命令
    # docker-compose restart nginx

    image

参考资料

目录
相关文章
|
Linux 开发工具 数据安全/隐私保护
嵌入式Linux开发环境搭建之十---阿里云服务器购买及Linux开发环境搭建
嵌入式Linux开发环境搭建之十---阿里云服务器购买及Linux开发环境搭建
226 0
|
11月前
|
安全 数据处理 数据中心
不同类型的光纤电缆及其应用特点
【10月更文挑战第22天】
372 6
|
12月前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
218 2
|
10月前
|
Nacos 微服务
Nacos与Eureka的区别
Eureka和Nacos均支持服务注册发现、基于心跳的健康检查及AP模式下的集群数据同步。主要区别在于:心跳频率、服务剔除机制、服务检测与清理周期不同,Nacos还额外提供配置管理功能。
312 0
|
负载均衡 监控 算法
|
12月前
|
存储 关系型数据库 MySQL
MySQL性能优化指南
【10月更文挑战第16天】MySQL性能优化指南
1033 0
|
前端开发
echarts使用transform缩放后导致图标模糊
echarts使用transform缩放后导致图标模糊
|
12月前
|
缓存 网络协议 API
C/C++ StringToAddress(字符串转 boost::asio::ip::address)
通过上述步骤和示例代码,你可以轻松地在C++项目中实现从字符串到 `boost::asio::ip::address`的转换,从而充分利用Boost.Asio库进行网络编程。
326 0
|
人工智能 自然语言处理 搜索推荐
DeepMind终结大模型幻觉?标注事实比人类靠谱、还便宜20倍,全开源
【4月更文挑战第5天】DeepMind推出开源工具SAFE,挑战大模型的幻觉,提升事实评估准确性和效率。通过自动化和搜索引擎验证,SAFE在成本上比人类标注便宜20倍,且在72%的时间与人类一致,显示了在大规模事实验证中的潜力。然而,依赖谷歌搜索和易受长文本信息过载影响是其局限性。
205 13
DeepMind终结大模型幻觉?标注事实比人类靠谱、还便宜20倍,全开源
|
Linux 网络安全 数据安全/隐私保护
centos7安装gitlab-ce社区版全过程,详细到爆炸,这些面试官常问的开发面试题你都掌握好了吗
centos7安装gitlab-ce社区版全过程,详细到爆炸,这些面试官常问的开发面试题你都掌握好了吗