docker-compose.yml使用10up / phpfpm和httd:latest无法运行php文件

时间:2017-12-08 15:02:46

标签: docker docker-compose

我想首先说我对Dockerdocker-compose.yml完全不熟悉,所以我从一开始就请求你的病人。

所以,我只是编写了我的第一个docker-compose.yml文件,其代码如下:

version: '3'
services:
    mysql:
        image: mysql:latest
        volumes:
            - $PWD/data/db:/var/lib/mysql
        restart: always
        ports:
            - 3306:3306
        environment:
            MYSQL_ROOT_PASSWORD: root
            MYSQL_DATABASE: appdb
            MYSQL_USER: root
            MYSQL_PASSWORD: root
    phpfpm:
        image: 10up/phpfpm
        depends_on:
            - mysql
            - phpmyadmin
        volumes:
            - $PWD/web:/var/www/html
        restart: always
        extra_hosts:
            - docker-local.dev:172.18.0.1
    apache:
        image: httpd:latest
        depends_on:
            - phpfpm
        ports:
            - 80:80
        restart: "always"
        volumes:
            - $PWD/web:/usr/local/apache2/htdocs
    phpmyadmin:
        image: phpmyadmin/phpmyadmin:latest
        links: 
            - mysql
        environment:
            PMA_HOST: mysql
            PMA_PORT: 3306
            PMA_USER: root
            PMA_PASSWORD: root
            MYSQL_ROOT_PASSWORD: root
            MYSQL_USER: root
            MYSQL_PASSWORD: root
        ports:
            - 8080:80
        depends_on:
            - mysql
    mailcatcher:
        image: schickling/mailcatcher
        restart: always
        ports:
            - "1025:1025"
            - "1080:1080"
        environment:
            MAILCATCHER_PORT: 1025

我的文件系统布局是这样的:

/
    /web
        info.php
    docker-compose.yml

info.php中的内容如下:

<?php
phpinfo();

当我使用命令docker-compose up运行docker时,我没有收到任何错误,MySQLApachephpMyAdmin以及{ {1}}似乎应该正常工作,但当我尝试访问网址mailcatcher时,我看到了文件的内容,而不是函数http://localhost/info.php的输出。

它可能有什么问题?

我有什么不对劲而且我没有看到它吗?

注意:这是一台开发机器,所以我不介意与我的代码共享的安全性和凭据:)。

1 个答案:

答案 0 :(得分:1)

你正在使用Apache2(httpd)图像;不是PHP。您正在使用This is the image

在该页面的文档中,它指出:

  

此图像仅包含具有上游默认值的Apache httpd。没有安装PHP,但扩展起来应该不难。另一方面,如果你只想要PHP和Apache httpd,请参阅PHP image并查看-apache标签。如果要运行简单的HTML服务器,请在项目中添加一个简单的Dockerfile,其中public-html /是包含所有HTML的目录。