我的构建不包括我的网站指令

时间:2015-05-19 16:33:11

标签: docker dockerfile

我不确定我从哪里走出铁轨,但我正在尝试为我的网站创建一个容器。首先,我从名为'默认':

的文件开始
server {
        root /var/www;
        index index.html;

        location / {
                try_files $uri $uri/ /index.html;
        }
}

var/www/指向我的网络内容,其中index.html是内容的默认文件。

然后我创建了一个非常简单的Dockerfile:

FROM httpd
MAINTAINER Jay Blanchard 

RUN httpd
ADD default /home/OARS/

在我的Dockerfile中,我引用了上面的默认文件,认为这是指向我的Web内容所需要的。默认文件恰好与Docker文件位于同一目录中,但正如我在一些示例中看到的那样,我给出了路径/home/OARS/

构建成功:

foo@bar:/home/OARS$ sudo docker build -t oars-example .
Sending build context to Docker daemon 3.072 kB
Sending build context to Docker daemon
Step 0 : FROM httpd
 ---> cba1e4bb4caa
Step 1 : MAINTAINER Jay Blanchard
 ---> Using cache
 ---> e77807e98c6b
Step 2 : RUN httpd
 ---> Using cache
 ---> c0bff2fb1f9b
Step 3 : ADD default /home/OARS/
 ---> 3b4053fbc8d4
Removing intermediate container e02d27c4309d
Successfully built 3b4053fbc8d4

运行似乎是成功的:

foo@bar:/home/OARS$ sudo docker run -d -P oars-example
9598c176a706b19dd28dfab8de94e9c630e5781aca6930564d15182d21b0f6a5
  

9598c176a706 oars-example:latest" httpd-foreground" 6秒前Up 5秒0.0.0.0:32776->80/tcp jovial_fermat

然而,当我转到IP(端口32776,端口80上已经存在某些东西)时,我没有得到/var/www中指定的索引页面,但我确实得到了默认值来自Apache服务器的索引页。

以下是来自服务器的日志:

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 000.000.000.000. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 000.000.000.000. Set the 'ServerName' directive globally to suppress this message
[Tue May 19 16:59:17.457525 2015] [mpm_event:notice] [pid 1:tid 140053777708928] AH00489: Apache/2.4.12 (Unix) configured -- resuming normal operations
[Tue May 19 16:59:17.457649 2015] [core:notice] [pid 1:tid 140053777708928] AH00094: Command line: 'httpd -D FOREGROUND'
000.000.000.000 - - [19/May/2015:17:00:08 +0000] "GET / HTTP/1.1" 200 45
000.000.000.000 - - [19/May/2015:17:00:08 +0000] "GET /favicon.ico HTTP/1.1" 404 209
  

我已经更改了日志中的IP地址,只是为了让事情变得犹豫不决。

我是否遗漏了一些明显的东西,以确保我的网站文件在容器中运行?

1 个答案:

答案 0 :(得分:0)

首先,您尝试在Apache容器中使用nginx配置文件。

然后,根据the base container documentation,指定配置文件的正确方法是:

# Dockerfile
FROM httpd
COPY ./my-httpd.conf /usr/local/apache2/conf/httpd.conf