2017-04-26 173 views
0

我的需求是使用openface,我需要训练数据集(图像)并测试web界面(PHP)中的每个输入图像,所有这些活动都应该从docker容器运行。无法从Docker容器运行Apache/php

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

下面的docker文件用于将项目导入到docker并安装apache/PHP。请告诉我是否需要在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)正在运行。

供参考:

  1. 命令创建搬运工图像

    sudo docker build -t myname/apache-test .

  2. 命令以启动搬运工容器

    docker run -p 8080:80 -d <imageid>

回答

0

我建议使用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映像。

相关问题