乐趣区

关于laravel:使用-Laradock-部署多项目运行

  1. 将我的项目放在 laradock 的同级目录下:

    * laradock
    * project-1
    * project-2
  2. 基于 laradock/nginx/sites 目录内的配置模板,减少对应我的项目的 Nginx 配置文件:

laradock/nginx/sites/app.conf
laradock/nginx/sites/project-1.conf
laradock/nginx/sites/project-2.conf


3. 依据须要批改配置文件的 `root`,`server_name`,`error_log` 等配置项;4. 配置 `hosts` 信息:

127.0.0.1 project-1.test
127.0.0.1 project-2.test


5. 启动容器:

docker-compose up -d nginx mysql redis workspace


> php-fpm 会随容器主动启动。6. 进入容器:

docker-compose exec workspace bash

# 以宿主机用户进入容器
docker-compose exec –user=laradock workspace bash

# for Windows PowerShell
docker exec -it {workspace-container-id} bash


> 进入容器后可执行 Artisan, Composer, PHPUnit, Gulp 等命令。7. 测试容器:

<?php

$dsn = “mysql:host=mysql;port=3306;dbname=test”;
$pdo = new PDO($dsn, ‘root’, ‘root’);
$stmt = $pdo->query(“select * from users”);
$data = $stmt->fetch(2);
var_dump($data);

echo “

“;

$redis = new Redis();
$redis->connect(‘redis’, 6379);
$redis->select(3);
$redis->set(‘test_count’, 3);
var_dump($redis->get(‘test_count’));


> 因为容器之间相互隔离,所以这里不能应用 IP 拜访,须要应用服务名进行拜访。8. 拜访 http://project-1.test/ 和 http://project-2.test/ 查看。#### 容器关系图
主机能够通过 IP 拜访容器,但容器之间互相隔离,须要通过服务名拜访。
your machine
                           |                    
    +------ (virtual network by docker) -------+
    |                      |                   |

+—————–+ +——————-+ +—————-+
| “php” container | | “redis” container | | “db” container |
+—————–+ +——————-+ +—————-+

退出移动版