建立于: 7年前 ( 更新: 7年前 )
为了让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需调整为新的。
-旧的原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档,
如果您有自定义的docker-compose-custom.yml档,
请使用docker-compose-normal或docker-compose-random为范本进行修改。
您需修改旧有的Laravel项目上的.env档,
DB_HOST=127.0.0.1
变更为DB_HOST=db
如果您有自定义的docker-compose-custom.yml档,
请使用docker-compose-normal或docker-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 服务(web、php及db)都添加了自定义的网络中,
所以web的container(即是nginx)服务要使用php-fpm需指定php container的service name.(这里叫php)
下方为etc/default.conf的片段,原fastcgi_pass127.0.0.1:9000;已调整为fastcgi_pass php:9000;
原DB_HOST=127.0.0.1,在新版(v1.0.0)会自动变更为DB_HOST=db。
将旧版本的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,确认运作是否正常。
因此设置上,我们连接php-fpm及mysql都使用本地连loopback的IP位置: 127.0.0.1。
v1.0.0新的设置docker-compose的yaml档改采networks,我们可以把他想成,三个container 服务(web、php及db)都添加了自定义的网络中,
所以web的container(即是nginx)服务要使用php-fpm需指定php container的service name.(这里叫php)
下方为etc/default.conf的片段,原fastcgi_pass
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,确认运作是否正常。
No Comment
Post your comment