php - 无法从 docker 容器运行 Apache/php

标签 php apache ubuntu docker dockerfile

我的要求是使用openface,我需要训练数据集(图像)并测试来自webinterface(PHP)的每个输入图像,所有这些事件都应该从docker容器运行。

我能够在 ubuntu 机器上实现上述要求。我们正在尝试在 docker 中安装完整的设置(apache/php 和 openface)。 目前我们无法使用 docker 从 apache 服务器调用 html 文件

以下是用于将项目导入 docker 并安装 apache/PHP 的 docker 文件。请让我知道是否需要在 dockerfile 中进行任何更改。

FROM ubuntu:16.04

RUN apt-get update && \
      apt-get -y install sudo

RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo

ADD opencv-3.0.0 /

ADD openface_setup.sh /

RUN /openface_setup.sh

ADD openface_work /


RUN apt-get update && apt-get -y upgrade && DEBIAN_FRONTEND=noninteractive apt-get -y install \
apache2 php7.0 libapache2-mod-php7.0 curl lynx-cur

RUN a2enmod php7.0
RUN a2enmod rewrite

RUN sed -i "s/short_open_tag = Off/short_open_tag = On/" /etc/php/7.0/apache2/php.ini
RUN sed -i "s/error_reporting = .*$/error_reporting = E_ERROR | E_WARNING | E_PARSE/" /etc/php/7.0/apache2/php.ini

ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid

EXPOSE 8080

VOLUME /var/www/html # **my PHP/html files are located here. In the docker container the html/php files are not reflecting**

ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf

CMD /usr/sbin/apache2ctl -D FOREGROUND

一旦容器启动,我希望 test.html(位于/var/www/html)运行。

供引用 :
  • 创建 docker 镜像的命令
    sudo docker build -t myname/apache-test .
  • 启动 docker 容器的命令
    docker run -p 8080:80 -d <imageid>
  • 最佳答案

    我建议使用 the official PHP image使用预装的 Apache 安装。

    您的项目可能如下所示:

    .
    ├── Dockerfile
    └── src
        └── index.php
    

    而您的 Dockerfile 包含以下内容:
    FROM php:7.1-apache
    # now RUN here your commands to install openface etc.
    

    您的 index.php 可能如下所示:
    <?php phpinfo();
    

    然后构建镜像:
    docker build -t myapache .
    docker run --rm -p 8080:80 -v $(pwd)/src:/var/www/html myapache
    

    http://localhost:8080显示 php-info 页面。

    您可以根据需要扩展图像,它比您的方法简单得多。希望这可能会有所帮助。

    如果不需要安装其他任何东西,可以在新建容器时直接使用 php:7.1-apache 镜像。

    关于php - 无法从 docker 容器运行 Apache/php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43640516/

    相关文章:

    PHP 为什么在构造中启动数据库连接不好?

    php - CakePHP 3 - 比较密码

    php - 使用 PHP 将表单数据保存到现有的 XML 文件

    apache - Docker-Apache HTTP代理-动态服务器名

    php - 如何使用 PHP/PDO 从 Ubuntu 创建到 SQL Server 的加密连接

    ubuntu - 如何在 Ubuntu 中摆脱 jenv?

    linux - Windows Linux Bash 运行时错误的变量名称/bin/sh -c "$(curl -fsS https://install.airshipcms.io)"

    php - 到另一个页面的超链接不起作用

    java - 将 float[] 发送到服务器

    apache - 重写 URL 以匹配 Locationmatch