2017-12-18 9 views
1

기존 사이트에 대한 사용자 정의 도커 컨테이너를 설정하려고합니다. 그렇게하려면 ServerName과 함께 자신 만의 맞춤 설정 인 vhost을 제공하고 싶습니다.Apache가 도커 컨테이너의 servername을 확인할 수 없습니다.

하지만 사용자 정의 vhost configuration를 추가하고 나는 아파치가 글로벌 이름을 확인할 수 없습니다 경고 얻을 아파치를 다시 시작하려고하면 : 중요 한 것은 내가 용기의 쉘에 로그인 할 때 수동으로 실행하는 것이 사실 Could not reliably determine the server's fully qualified domain name, using 172.26.0.2. Set the 'ServerName' directive globally to suppress this message

입니다 service apache2 restart 더 이상 경고 메시지가 표시되지 않습니다.

빌드시 어떻게 억제 할 수 있습니까? 어떻게해야 작곡가에게 vhost을 제공해야합니까? 여기

가 내 docker-compose.yml 같은 것입니다 :

FROM php:7.0-apache 
ENV TERM=xterm 
LABEL maintainer="Derek P Sifford <[email protected]>" \ 
     version="0.15.2-php7.0" 

ARG APP_HOST 
ENV APP_HOST=$APP_HOST 

ADD ./sites/app.conf /etc/apache2/sites-available/app.conf 
RUN sed -i 's/ServerName APP_HOST/ServerName '$APP_HOST'/g' /etc/apache2/sites-available/app.conf 

RUN sed -i 's/AllowOverride None/AllowOverride All/g' /etc/apache2/apache2.conf \ 
    && a2enmod rewrite expires \ 
    && a2dissite 000-default.conf \ 
    && a2ensite app.conf \ 
    && service apache2 restart 

WORKDIR /app 
EXPOSE 80 443 

그리고 분명히 사이트 설정 : 내 자신의 가능한 사이트 추가

version: '3' 
services: 
    web: 
    build: 
     context: ./etc/php 
     args: 
     - APP_HOST=${APP_HOST} 
    ports: 
     - ${APP_PORT}:80 
     - ${APP_PORT_SSL}:443 
    volumes: 
     - ./var/bin/:/tmp/bin/ 
     - ./app/:/var/www/html/ 
     - ./log/:/var/log/ 
     - ./etc/php/conf/:/usr/local/etc/php/conf.d/ 
    environment: 
     - VIRTUAL_HOST=${VIRTUAL_HOST} 
다음

, Dockerfile

<VirtualHost *:80> 
    DocumentRoot "/var/www/html" 
    ServerName APP_HOST 

    SetEnv APPLICATION_ENV "development" 

    <Directory "/var/www/html"> 
     DirectoryIndex index.php 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

답변

1

here을 바와 같이 경고 메시지에서를 설정할 수 있습니다. Dockerfile 내에서 의 에있는3210 속성

+0

에 의해 제거되었습니다. 'echo "ServerName localhost"| /etc/apache2/conf-available/fqdn.conf && \ a2enconf fqdn'을 Dockerfile에 보냅니다. 고마워 :) – Moby04

0

복사하고 볼륨에 마운트하기 때문에 구성에 문제가 있다고 생각합니다. 컨테이너를 실제로 사용할 때 구성을 변경해서는 안되기 때문에 컨테이너를 마운트 할 필요가 없습니다.

그래서, 당신의 고정 표시기-compose.yml에서이 줄을 제거하려고 :

아파치 컨테이너 인스턴스에
- ./etc/php/conf/:/usr/local/etc/php/conf.d/ 
+0

나는 PHP를 구성 (최대 파일 업로드 같은 물건)에 대한 몇 가지 변경 사항을 가지고 ... 어떻게 내가 그렇지 않으면 수정할 수 있습니까? – Moby04

0

, 당신이 /etc/hosts에서 IP 172.26.0.2을 넣어해야하며, 예를 들어, 여기에 완전한 이름을 제공

172.26.0.2 vbox.test.com

그런 다음 vbox.test.com

또는

와 호스트 이름을 대체는 서버 이름에 localhost을 넣어.

This이 도움이 될 것입니다.