apache Docker容器(网站)内容未更新

gev0vcfq  于 2023-02-16  发布在  Apache
关注(0)|答案(2)|浏览(138)

我已经建立了一个项目与网络主机(httpd:2. 4)
(停靠文件内容:
FROM httpd:2.4
(x月1日至1x日)
它托管了一个静态网站...我希望能够改变/发布未来的变化,但这并不工作的方式,我期待它...
我在用

git clone [repository]
cd [repository]
docker-compose -f docker-compose/docker-compose.yml up -d

来运行这个项目,它运行得非常好
问题是我应该能够对网站进行更改。
我想事情应该是这样的:
docker-compose -f docker-compose/docker-compose.yml down
更改index.html(保存)
docker-compose -f docker-compose/docker-compose.yml up -d
但是,即使(为了测试)我删除了index.html中的每一个字符,它仍然与以前完全相同
我错过了什么?我必须运行哪些命令才能应用更改?

shyt4zoc

shyt4zoc1#

如果您有一个dockerfile,该文件包含以下内容,

FROM httpd:2.4
COPY . /usr/local/apache2/htdocs

这意味着您正在构建一个自定义Docker映像以满足您的需要。您还使用COPY命令将项目复制到您的Docker映像,这是在构建自定义Docker映像时完成的。这是复制Docker映像中的代码以用于分发目的的一个很好的解决方案,但可能不是用于开发目的的最佳解决方案。
如果对项目进行了更改,则在重新生成该Docker映像之前,这不会反映在自定义Docker映像中。重新生成映像后,项目的当前文件将复制到Docker映像。然后,重新启动Docker合成并使用最新生成的映像后,更改将可见。
如果你不想在每次更改时都构建一个docker映像,最好创建一个docker-compose文件,将你的项目直接Map到/usr/local/apache2/htdocs。这样,对项目所做的更改将立即反映出来,而无需任何构建过程。
docker合成文件示例,其中项目Map到/usr/local/apache2/htdocs,此docker合成文件需要位于index.html所在的目录中。

version: '3.9'

services:
  apache:
    image: httpd:latest
    container_name: webserver
    ports:
      - '8080:80'
    volumes:
      # mapping your root project's directory to htdocs
      - ${PWD}:/usr/local/apache2/htdocs
vlurs2pr

vlurs2pr2#

如果您在docer-compose. yml文件中引用了一个docker图像,而不是在那里构建图像,则可能会出现此问题。当您引用一个图像时,docker-compose up将使用完全相同的图像创建相应的容器。
您需要:

  • 在对html文件进行更改之后和运行docker-compose之前再次构建图像。

  • 在docker-compose.yml中构建图像,如下所示

相关问题