基于 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 614 articles

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

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

  1. lee says:

    学院君 请问 使用laradocker配置之后 PHP链接不了mysql 用localhost连接 报错no such files 用127.0.0.1就是refused 但是如果用navicat等工具 就可以连接到mysql 这个是哪里有问题吗

  2. 阿熊 says:

    https://github.com/nickfan/laradock可以用我改过的这个适配国内的版本:* php composer 换成国内的源(phpcomposer)* 已经加了常用的composer全局工具(box/phpcs/envoy等)* npm和yarn换成国内的源 (淘宝)* nginx的基础镜像 alpinelinux 换成国内源(中科大)* 其他ubuntu镜像 换成国内源(阿里云)使用前记得按workspace/auth.json.example复制并设置一下workspace/auth.json文件添加自己的github的Personal Access Token到配置的对应内容里另外docker本身的Registry Mirrors可以设置为http://hub-mirror.c.163.com 加速镜像的下载,或者去注册个阿里云开发者账号登录后可以享用免费的阿里云镜像加速服务。

发表评论

标记为*的字段是必填项(邮箱地址不会被公开)

你可以使用这些HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>