基于 LaraDock 在 Docker 中快速构建 Laravel 应用系列教程 —— 工具软件使用

dockervel

1、Artisan命令

首先进入Workspace容器

docker-compose exec workspace bash

然后在Laravel项目目录下运行Artisan命令即可:

php artisan list

当然,也可以运行其他PHP命令,如:

composer update
phpunit

2、PHP相关

安装PHP扩展

安装PHP扩展之前,需要区分PHP-FPM和PHP-CLI,两者对应的扩展应该安装到不同的容器:

  • PHP-FPM扩展需要安装到php-fpm/Dockerfile-XX(XX代表PHP版本号);
  • PHP-CLI扩展需要安装到workspace/Dockerfile

修改PHP-FPM版本

默认运行PHP-FPM 7.0版本,如果要切换到5.6版本,操作步骤如下:

  • 打开docker-compose.yml
  • 找到php-fpm所在位置,使用Dockerfile-56替换Dockerfile-70
    php-fpm:
    build:
    context: ./php-fpm
    dockerfile: Dockerfile-70
  • 最后重建PHP容器:docker-compose build php

注:更多PHP基础镜像,请访问PHP Docker官方镜像

修改PHP-CLI版本

默认运行的PHP-CLI是7.0版本,PHP-CLI只用于服务Artisan或Composer命令,不服务于应用代码,这是PHP-FPM的工作,所以PHP-CLI的版本号基本上无关痛痒。PHP-CLI安装在Workspace容器,改变PHP-CLI版本需要编辑workspace/Dockerfile

安装XDebug

首先需要在Workspace和PHP-FPM容器中安装XDebug:

1)打开docker-compose.yml文件;
2)在Workspace容器中找到INSTALL_XDEBUG选项,改为true
3)在PHP-FPM容器中找到INSTALL_XDEBUG选项,改为true

workspace:
    build:
        context: ./workspace
        args:
            - INSTALL_XDEBUG=true
...
php-fpm:
    build:
        context: ./php-fpm
        args:
            - INSTALL_XDEBUG=true
...

然后重建这两个容器:

docker-compose build workspace php-fpm

3、使用自定义域名

假设你的自定义域名是laravel.dev,设置步骤如下:

1)打开etc/hosts,添加以下映射内容:

127.0.0.1    laravel.dev

并在nginx中配置域名:

server_name laravel.dev;

2)打开浏览器访问http://laravel.dev

4、全局安装Composer

1)打开docker-compose.yml文件
2)在Workspace容器中找到COMPOSER_GLOBAL_INSTALL选项并设置为true

workspace:
    build:
        context: ./workspace
        args:
            - COMPOSER_GLOBAL_INSTALL=true
...

3)现在添加你的依赖关系到workspace/composer.json
4)最后重建容器docker-compose build workspace

5、使用Redis

首先需要启动Redis容器:

docker-compose up -d redis

然后,打开Laravel项目下的.env文件修改REDIS_HOST

REDIS_HOST=redis

如果.env中没有REDIS_HOST变量,则需要修改config/database.php中的redis默认主机配置:

'redis' => [
    'cluster' => false,
    'default' => [
        'host'     => 'redis',
        'port'     => 6379,
        'database' => 0,
    ],
],

启用Redis缓存或设置Session驱动为Redis:

CACHE_DRIVER=redis
SESSION_DRIVER=redis

通过Composer安装predis/predis依赖:

composer require predis/predis:^1.0

你可以用以下代码在Laravel中手动测试:

Cache::store('redis')->put(’site_name', ‘Laravel学院', 10);

其它软件使用以此类推。

6、安装Node+NPM

1)打开docker-compose.yml文件;
2)在Workspace容器中找到INSTALL_NODE选项设置为true

workspace:
        build:
            context: ./workspace
            args:
                - INSTALL_NODE=true
    ...

3)最后重建容器:docker-compose build workspace

附:LaraDock系列教程:

学院君

学院君 has written 556 articles

资深PHP工程师,Laravel学院院长