by Devin Yang

建立于: 6年前 ( 更新: 6年前 )

为了让container可以被更灵活运用,D-Laravel释出v1.0.0版了,此版本为不向下相容变更

不相容变更的意思

-旧的./console./create这两只bash无法正常使用在v1.0.0新的版本。
-旧的原Laravel项目的env上的数据库IP(127.0.0.1)位置要变更为MySQL container的service name (db)。
 DB_HOST=db
-如果您有自定义的nginx设置档需调整php-fpm的连接方式。
 fastcgi_pass php:9000;
-如果您有自定义的docker-compose-custom.yml需调整为新的。

当您用git pull直接进行更新至v1.0.0时:

正常情况下,您只需调整DB_HOST的位置。
您需修改旧有的Laravel项目上的.env档,DB_HOST=127.0.0.1变更为DB_HOST=db
如果您有自定义的docker-compose-custom.yml档,
请使用docker-compose-normaldocker-compose-random为范本进行修改。

关於这次的变更:

v1.0.0以前的docker-compose的yaml档,使用network_mod: "service:web" 我们可以想成,把三个container服务的网络都绑在了web container服务上
因此设置上,我们连接php-fpm及mysql都使用本地连loopback的IP位置: 127.0.0.1。

v1.0.0新的设置docker-compose的yaml档改采networks,我们可以把他想成,三个container 服务(webphpdb)都添加了自定义的网络中,
所以web的container(即是nginx)服务要使用php-fpm需指定php container的service name.(这里叫php)
下方为etc/default.conf的片段,原fastcgi_pass 127.0.0.1:9000;已调整为fastcgi_pass php:9000;
 location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_read_timeout 500;
    }
新版本create bash,例如:使用./create test1这个project时,
DB_HOST=127.0.0.1,在新版(v1.0.0)会自动变更为DB_HOST=db
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=test1
DB_USERNAME=homestead
DB_PASSWORD=secret

旧版(v1.0.0之前)更新到新版本(v1.0.0)

安全的更新方式,我们可以抓D-Laravel v1.0.0版本下来测试。
将旧版本的sites/内的project拷贝到新版v.1.0.0的sites/内。
包含数据的数据夹data/拷贝到v1.0.0的目录内。
(请确认docker-compose.yml新版使用的DB image版本与旧版本相同,
差异太大的mysql image会造成DB container启动失败
)
并修正sites/内laravel project的.env档,DB_HOST=127.0.0.1变更为DB_HOST=db
必免有port充突,我们可以停掉旧版的D-Laravel,
再启动v1.0.0版的d-laravel,确认运作是否正常。
 

Tags: d-laravel docker laravel docker-compose

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


docker laravel

闲聊D-Laravel的console命令

D-Laravel的console命令让我们快速的了解他运行了什么。如果使用docker-compose是怎么运行的呢? 我们来看看吧。

docker, tinkerwell, tinker, laravel

Tinkerwell与docker环境运用

其实我最近不用Tinkerwell了,因为老是要我花钱更新。要测试直接ssh 主机不就搞定啦不是?

wordpress, d-laravel, docker, docker-compose

如何用D-Laravel安装Wordpress

约8分钟的教程影片,介绍在D-Laravel上安装Wordpress. D-Laravel是一个docker-compose的Laravel框架开发环境,但不代表他不能拿来装别的东西。 这个影片,介绍使用D-Laravel安装非Laravel的PHP项目, 您可以学到D-Laravel上的相关命令用法: ./create --host用法, docker-compose up -d及 ./console mysql用法, D-Laravel v1.0.0版后的数据库连线设置方式。