2017-04-26 3 views
0

필자는 openface를 사용하고 있습니다. 데이터 세트 (이미지)를 학습하고 webinterface (PHP)에서 각 입력 이미지를 테스트해야하며이 모든 작업은 도커 컨테이너에서 실행해야합니다.도커 컨테이너에서 Apache/php를 실행할 수 없습니다.

우분투 기계에서 위의 요구 사항을 달성 할 수 있습니다. 우리는 docker에 전체 설치 (apache/php & openface)를 설치하려고합니다. 현재 도커를 사용하여 아파치 서버에서 html 파일을 호출 할 수 없습니다.

다음은 도커로 프로젝트를 가져 와서 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에 있음)을 실행하고 싶습니다. FYI

등재 고정 표시기 화상에

  1. 명령

    sudo docker build -t myname/apache-test .

  2. 명령은 고정 표시기 컨테이너를 시작

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

답변

0

사전 설치된 Apache 설치에서 the official PHP image을 사용하는 것이 좋습니다.

프로젝트는 다음과 같습니다

. 
├── 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 이미지를 직접 사용할 수 있습니다.

0

도커 ps을 입력하여 컨테이너에서 실행중인 모든 프로세스를 가져 오십시오. 그럼 그냥 컨테이너 ID

그것은 아파치 서버를 시작하고 그것을 호스팅 위치를 /etc/docker/daemon.json에 다른 하나를 추가하려는 경우가 아니면 주소를 표시합니다 - 그것은 고정 표시기 실행을 입력 (https://docs.docker.com/engine/userguide/networking/default_network/custom-docker0/)

관련 문제