基于 Docker 的 Laravel 开发环境-lardock【网络不好别尝试】

未匹配的标注

Laradockä¸ææç¨

学习文章

xueyuanjun.com/post/9608

基础

lardock是什么?

Laradock是基于Docker的完整PHP开发环境。

支持各种通用服务,所有这些都预先配置为提供完整的PHP开发环境。

lardock有什么用?

功能

  • 在PHP版本之间轻松切换:7.4、7.3、7.2、7.1、5.6…
  • 选择您喜欢的数据库引擎:MySQL,Postgres,MariaDB…
  • 运行自己的堆栈:Memcached,HHVM,RabbitMQ…
  • 每个软件都在自己的容器上运行:PHP-FPM,NGINX,PHP-CLI…
  • 只需对进行简单的编辑,即可轻松自定义任何容器Dockerfile
  • 所有图像均来自官方基础图像。(受信任的基本图像)。
  • 预先配置的NGINX可以在根目录中托管任何代码。
  • 每个项目可以使用Laradock,或者所有项目可以使用一个Laradock。
  • 使用环境变量可轻松在Containers中安装/删除软件。
  • 干净且结构良好的Dockerfile(Dockerfile)。
  • 最新版本的Docker Compose文件(docker-compose)。
  • 一切都可见且可编辑。
  • 快速图像构建。

lardock 如何发展起来的?

Laradock 早期专注为 Laravel 打造 Docker 开发环境,因而最早在 Laravel 社区中出名,后来随着影响力的扩大,逐渐被 PHP 社区接纳和采用,目前支持的 PHP 项目除了 Laravel 之外,还有 Symfony、CodeIgniter、WordPress、Drupal 等等。

关于docker

一篇文章学会 Docker

也可以看下up主的这个视频哈。喜欢的请点赞。
二维码:
基于 Docker 的 Laravel 开发环境-lardock

视频:

配置安装lardock

1. 克隆 Laradock 到本地

// 如果你项目已经有git
git submodule add https://github.com/Laradock/laradock.git
// 如果没有git仓库
https://github.com/laradock/laradock.git

执行命令:
基于 Docker 的 Laravel 开发环境-lardock

clone成功后,目录结构如下:
基于 Docker 的 Laravel 开发环境-lardock

ps:

  1. git submodule, 使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可。
  2. 建议fork一份到github,然后复制一份到gitee。否则网络你10k每秒,你有工具咱除外。

2. 进入 laradock 目录将 env-example 重命名为 .env

cd lardock
mv env-example .env

3、构建环境并使用运行 docker-compose:

docker-compose up -d nginx mysql redis workspace

执行结果:
状态1: 下载中【需要工具才可以使用网络】:
基于 Docker 的 Laravel 开发环境-lardock

状态2: 开始安装

基于 Docker 的 Laravel 开发环境-lardock

基于 Docker 的 Laravel 开发环境-lardock

状态3: 安装成功

基于 Docker 的 Laravel 开发环境-lardock

基本上下载,1.5小时要的。所以等吧,等下载成功后,看下一步。

ps:所有的web服务器容器nginxapache..等要看php-fpm,如果你运行任何人,这意味着,他们将自动启动php-fpm容器给你,所以没必要明确地在其指定up的命令。如果必须这样做,则可能需要按以下方式运行它们:docker-compose up -d nginx php-fpm mysql
您可以从此列表中选择自己的容器组合。

4、在.env 文件添加如下配置:

DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd

基于 Docker 的 Laravel 开发环境-lardock

5、在laradock 中创建 wwwroot

  1. laradock 父级目录下创建一个与 laradock 同级的 wwwroot 目录
  2. wwwroot 目录下运行 composer create-project laravel/laravel blog --prefer-dist 命令创建一个新的 Laravel 应用,相应的层级目录关系如下所示:

composer没装点这里

安装中

基于 Docker 的 Laravel 开发环境-lardock
安装成功。

基于 Docker 的 Laravel 开发环境-lardock

  1. 编辑 lardock目录下的 .env 中的 APP_CODE_PATH_HOST
APP_CODE_PATH_HOST=../wwwroot/

基于 Docker 的 Laravel 开发环境-lardock

这一步就相当于,为wwwroot 与 Docker 的 /var/www 目录建立了软链接.

  1. 配置虚拟主机
cd laradock/nginx/sites
touch blog.conf 

在 blog.conf 中配置你的虚拟主机即可。

下面是测试使用的配置:

server {

    listen 80;
    listen [::]:80;

    server_name blog.test;
    root /var/www/blog/public; # 要修改,然后注释删掉
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass php-upstream;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fixes timeouts
        fastcgi_read_timeout 600;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    location /.well-known/acme-challenge/ {
        root /var/www/letsencrypt/;# 要修改,然后注释删掉
        log_not_found off;
    }
}

作者本人的配置:

基于 Docker 的 Laravel 开发环境-lardock

  1. 修改hosts
    /etc/hosts 增加 127.0.0.1 blog.test
    注意: blog.test 就是你的虚拟主机server名字。

  2. 重启服务
    改完配置文件后需要重启服务。

docker-compose up -d nginx
  1. 访问

blog.test

基于 Docker 的 Laravel 开发环境-lardock

如何配置多个站点?

  1. 配置虚拟主机文件
    laradock/nginx/sites 下对应创建多个配置文件

  2. 配置对应的hosts

那我们如何选择自己的laravel 开发环境呢?

就趋势而言,肯定docker。所以我选lardock。
而且,学院君老师使用的也是lardock。嘿嘿,你懂的。

报错解决

1. Failed to connect to raw.githubusercontent.com port 443: Connection refused,ERROR: Service ‘workspace’ failed to build:

Running in 0326b7d610ee
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
/bin/sh: 1: .: Can't open /home/laradock/.nvm/nvm.sh

基于 Docker 的 Laravel 开发环境-lardock

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
wangchunbo
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~