使用 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. 测试容器:

$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 |
+-----------------+ +-------------------+ +----------------+

你可能感兴趣的:(使用 Laradock 部署多项目运行)