【发布时间】:2015-04-09 09:48:53
【问题描述】:
我使用 docker 容器并为 nginx 构建了一个。
我想用我的 index.html 更改 nginx 的主页。
如何告诉我的 nginx 容器在哪里找到我的自定义 index.html 并用我的索引替换他自己的 index.html?
【问题讨论】:
标签: nginx docker home-directory
我使用 docker 容器并为 nginx 构建了一个。
我想用我的 index.html 更改 nginx 的主页。
如何告诉我的 nginx 容器在哪里找到我的自定义 index.html 并用我的索引替换他自己的 index.html?
【问题讨论】:
标签: nginx docker home-directory
您可以简单地将COPY command 或ADD command 放在您的Dockerfile 中,这会将您的index.html 文件复制到NGiNX 提供的文件上(由root 指令定义,例如/data/www/index.html)
COPY <src>... <dest>
ADD <src>... <dest>
这里:
COPY /path/to/your/index.html /data/www/index.html
ADD /path/to/your/index.html /data/www/index.html
注意,RUN 或 COPY 优先于 ADD:
如果
<src>的内容发生变化,第一个遇到的ADD指令将使来自Dockerfile 的所有后续指令的缓存失效。
这包括使RUN指令的缓存失效。
这就是suggestion made in the comments 更好的原因:
如果你有一些改动
RUN sed -i -e"s/aaa/bbb" /data/www/index.html
如果您有很多更改,ADD 仍然是一个有效的选项(先尝试COPY),但请尝试将其放在 dockerfile 的 end 中,而不是放在开头或中中间。
【讨论】:
RUN sed -i -e"s/aaa/bbb" /data/www/index.html 如果你有很少的变化
RUN 或 COPY 比 ADD 好,这会使 Dockerfile 中所有以下指令的缓存失效。