2017-12-18 209 views
1

我正在嘗試爲現有站點設置定製的碼頭集裝箱。要做到這一點,我想提供我自己的自定義vhost配置與ServerNameApache無法確定碼頭集裝箱上的服務器名稱

但是當我嘗試添加自定義vhost configuration和重啓apache我得到阿帕奇無法確定全局名稱警告: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是這樣的:

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,增加了我自己可用的站點:

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 

很顯然站點配置:

<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並在警告消息中可以設置ServerName屬性localhost/etc/apache2/apache2.conf從Dockerfile中。

+0

通過添加'echo「ServerName localhost解決方案| tee /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

在Apache的容器實例,你應該把IP 172.26.0.2/etc/hosts並將其提供例如一個完全合格的名稱

172.26.0.2 vbox.test.com

然後用vbox.test.com

更換主機名SERVERNAME把localhost

This應該可以幫到你。