gpt4 book ai didi

docker - 用于 Web 应用程序 devops 的示例 docker compose 设置

转载 作者:行者123 更新时间:2023-12-02 21:22:39 24 4
gpt4 key购买 nike

我正在构建一个由多个后端和前端组件组成的网站。我想使用 docker compose 部署到生产服务器。

以下是各种组件:

后台

  • 用于构建与 Python 包装器一起使用的共享库的 C++ 代码
  • Tornado Web 服务器使用上一步生成的 python 库
  • PostgreSQL 数据库服务器

  • 前端
  • ReactJS、webpack、节点、(HTML/CSS)

  • 假设我保持每个 Dockerfile 一个进程的口头禅,我想为上面显示的每个“层”构建单独的图像 - 但是,我识别的层是否“正确” - 在后端和前端?

    最后,谁能展示一个样本 docker_compose.yml文件允许我从不同的部分组装网站 - 同时考虑到依赖关系,例如 tornado 应用程序取决于 C++ 应用程序生成的 Python 库以及 pg 数据库服务。

    最佳答案

    我认为拆分后端和前端应用程序绝对有意义。

    我不太确定我是否完全了解您对生成 Python 使用的库的 C++ 应用程序的要求。你的意思是你有使用 C 库的 Python 包吗?

    不管怎样,你会注意到下面我附上了一个样本 docker-compose.yml文件。我什至已经为您的前端和后端应用程序包括网络分段,尽管这是可选的并且取决于您。

    因为你特别提到了依赖 Python 和数据库的 Tornado 容器,所以我使用了服务级别 depends_on key 。请注意,这不会等待启动 tornado容器,直到这些其他服务“准备好”,直到它们的容器启动。有关这种协调的更多信息可以在 Docker 文档 (https://docs.docker.com/compose/compose-file/#dependson) 中找到。

    version: '3'
    services:
    python_app:
    image: your_name/your_python_image
    ports:
    - 5000:5000
    networks:
    - backend

    # https://hub.docker.com/_/postgres/
    database:
    image: postgres
    ports:
    - 5432:5432
    environment:
    - POSTGRES_PASSWORD=mysecretpassword
    networks:
    - backend

    tornado:
    image: your_name/your_tornado_image
    ports:
    - 8000:8000
    depends_on:
    - python_app
    - database
    networks:
    - frontend

    front_end:
    image: your_name/your_front_end_image
    ports:
    - 80:80
    - 443:443
    networks:
    - frontend
    - backend

    # https://docs.docker.com/compose/networking/#specifying-custom-networks
    networks:
    frontend:
    backend:

    很高兴与您一起完成更多的工作,并建立一个您满意的解决方案。

    关于docker - 用于 Web 应用程序 devops 的示例 docker compose 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43561179/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com