无法从Docker容器运行Apache / php

我的要求是使用openface我需要训练数据集(图像)和testing从web界面(PHP)每个input图像,所有这些活动应该从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)正在运行。

供参考:

  1. 命令来创build泊坞窗图像

    sudo docker build -t myname/apache-test .

  2. 命令启动泊坞窗容器

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

我build议使用官方的PHP镜像与预安装的Apache安装。

您的项目可能如下所示:

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

而你的Dockerfile包含这个:

 FROM php:7.1-apache # now RUN here your commands to install openface etc. 

和你的index.php可能是这样的:

 <?php phpinfo(); 

然后build立图像:

 docker build -t myapache . docker run --rm -p 8080:80 -v $(pwd)/src:/var/www/html myapache 

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

您可以将图像扩展到您的需求,而且比您的方法简单得多。 希望这可能有帮助。

如果你不需要安装任何东西,你可以在创build一个新的容器时直接使用php:7.1-apache镜像。

尝试inputdocker ps以获取在容器中运行的所有进程。 然后inputdocker run -it container-id

它将启动apache服务器,并显示它所在的地址,除非你想在/etc/docker/daemon.json中添加一个不同的地址https://docs.docker.com/engine/userguide/networking/default_network/ custom-docker0 / )