簡體   English   中英

無法從Docker容器運行Apache / php

[英]unable to run Apache/php from docker container

我的要求是使用openface,我需要訓練數據集(圖像)並測試來自webinterface(PHP)的每個輸入圖像,所有這些活動應從docker容器運行。

我能夠在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. 創建docker鏡像的命令

    sudo docker build -t myname/apache-test .

  2. 命令啟動Docker容器

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

我建議將官方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();

然后構建圖像:

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映像。

嘗試輸入docker ps以使所有進程在容器中運行。 然后只需鍵入docker run -it container-id

這將啟動Apache服務器,並顯示地址在那里托管,除非你想添加在/etc/docker/daemon.json一個不同( https://docs.docker.com/engine/userguide/networking/default_network/ custom-docker0 /

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM