先在 docker-compose.yml 文件里添加如下代码,构建我们的 php 应用。

    1. version: '2'
    2. services:
    3. # our web application
    4. app:
    5. build:
    6. context: ./
    7. dockerfile: app.dockerfile
    8. volumes:
    9. - ./:/var/www
    10. working_dir: /var/www
    11. environment:
    12. - DB_HOST=database
    13. - REDIS_HOST=redis

    下面解释下我们的代码。

    version: 表示我们的compose文件的版本,目前有1,2,3,每个版本语法不尽相同,这里以版本2为例,具体可参考 docker-compose 文档。
    services: 即我们要开始定义服务,每个docker容器为一个服务。
    app: 这里我们定义了第一个服务,app 为其名字
    build: 指定该容器构建参数
    volumes: 与 dockerfile 中 -v 参数相似,这里是将当前文件夹挂载到容器的/var/www 目录下
    working_dir: 指定容器工作目录
    environment: 设置环境变量。由于 laravel 框架在环境变量已有值的情况下不会加载.env 配置,这里 DB_HOST和 REDIS_HOST 就是.env 文件中配置数据库连接的参数,我们设置它以便连接docker 的数据库,database 和 redis 是接下来定义的服务名称