将项目放在
laradock
的同级目录下:* laradock * project-1 * project-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 |
+-----------------+ +-------------------+ +----------------+
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。