当前位置: 首页 > 知识库问答 >
问题:

更改后容器上的Docker卷已更新,但主机中未发生任何更改

汪丁雷
2023-03-14

对于烧瓶应用程序,我使用主机和容器之间的体积。我的docker-comment的web部分看起来像这样:

  web:
    restart: on-failure
    container_name: web
    build:
      context: "."
      dockerfile: "docker/Dockerfile.web"
    ports:
      - 5000:5000
    volumes:
      - database:/var/run/postgresql
      - .:/usr/src/app
volumes:
  database:

这是我的Dockerfile:

FROM python

WORKDIR /usr/src/app

COPY . .

RUN pip install --no-cache-dir -r requirements.txt

CMD ["python", "./sources/app.py"]

我认为我的卷创建得很好,因为当我从主机在app.py中创建和更新时,容器中的app.py也会更新。但问题是,当我从浏览器重新加载页面时,内容尚未更新。

当我做docker卷列表时我得到了以下信息:

DRIVER              VOLUME NAME
local               b26d14737c65ba4d26c3751ae898883e9062c4894a5fd31b191ffd9ded7f1d50
local               web-app_database

卷b26d14是多少?我不认为这是一个用docker-comment创作的。运行docker卷检查后返回:

[
    {
        "CreatedAt": "2020-03-21T10:41:19Z",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/b26d14737c65ba4d26c3751ae898883e9062c4894a5fd31b191ffd9ded7f1d50/_data",
        "Name": "b26d14737c65ba4d26c3751ae898883e9062c4894a5fd31b191ffd9ded7f1d50",
        "Options": null,
        "Scope": "local"
    }
]

我必须让它工作的唯一方法是重新启动容器。

我找到了这篇文章:链接,但它没有解决我的问题。

Docker版本:
-Docker版本19.03.8,构建afacb8b
-docker-compose1.25.4,构建8d51620a

有什么想法吗?

感谢回复,并有一个美好的一天。

共有1个答案

郑琦
2023-03-14

通过评论,我们得出结论,问题在于Flask如何处理实时/热重新加载,与Docker无关。

Flask提供了可用于启用调试器和自动重载器等开发功能的FLASK_ENV环境变量。要启用开发功能,您需要将其值设置为Development

Docker还提供了一种使用ENV关键字设置环境变量的简洁方法。您只需在Dockerfile中添加以下行:

ENV FLASK_ENV=development
 类似资料:
  • 有没有办法通过在容器的命令行中发送命令来重命名lxc容器主机名?我知道您可以执行类似于的操作,然后使用()重命名配置中的主机名和路径。 但是,我可以不离开容器的控制台,然后在主控制台中键入内容来完成它吗?

  • 我已经创建了这个,并根据https://github.com/rodolpheche/wiremock-docker: 然后我创建了下面的文件位于/my/project/directory中 /my/project/wiremock/stubs中的子目录是映射和__files。 当我执行docker compose up时,docker容器可以工作,我可以发出一些工作正常的请求。但我的问题是,存根

  • 我是Docker的新人,我正在尝试创建/使用现有映像来启动我的应用程序。在阅读了几篇stackoverflow帖子和Docker文档后,我能够使用Docker容器启动我的应用程序。现在我正在寻找保存修改后的Docker容器的正确方法,以便我可以重用容器通过运行docker命令来启动我的应用程序。 我看到人们使用$docker提交来保存docker容器。如果我运行此命令,容器将保存在哪里?其他人可以

  • 是否可以更改卷本地路径? 使用Kitematic,我可以做到这一点。但我没有找到从cli执行此操作的方法。 例如,我运行docker使用: 我想重复使用容器,但如果可能,请更改体积。

  • 我在尝试创建一个以gradle数据库为中心的项目来管理我的所有db迁移时遇到了这个问题。我正在利用插件的1.2.1并且相信我已经正确地配置了所有的东西,但是,我的变更集没有应用,即使在databasechangelog中没有行,并且更新状态报告如下所示的成功(来自gradle update--调试的输出)。 21:55:27.248[错误][System.err]信息2/26/16 9:55 PM

  • 我使用Eclipse创建了一个网站,Servlet在其中将数据发送到jsp。但是我不知道为什么我在Servlet中更改数据。它仍然将旧数据发送到jsp。即使我尝试了这些选项.. 菜单-项目-清理(如果不使用自动构建,请单击此选项) 菜单-项目-项目自动构建(选中此选项) 下面是一个例子: Product.java ProductModel.java ProductController.java i