2017-12-18 134 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应该可以帮到你。