2017-04-26 232 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映像。

相關問題