【问题标题】:What is the correct way to set up a Django/PostgreSQL project with Docker Compose?使用 Docker Compose 设置 Django/PostgreSQL 项目的正确方法是什么?
【发布时间】:2015-05-17 14:59:19
【问题描述】:

您能告诉我使用 Docker Compose 设置和配置 Django/PostgreSQL 项目的最佳方式是什么吗?

(使用最新版本的一切,python 3.4、django 1.8.1 等)

【问题讨论】:

    标签: django docker docker-compose


    【解决方案1】:

    您看过 Docker 网站上的示例吗?这是一个link 正是描述了这一点。

    基本上,您需要两项服务,一项用于您的 Django 应用程序,一项用于您的 Postgres 实例。您可能希望从当前文件夹为您的 Django 应用程序构建 Docker 映像,因此您需要定义一个 Dockerfile:

    # Dockerfile
    FROM python:3.4-onbuild
    

    这就是整个Dockerfile!使用神奇的-onbuild 映像,文件会自动复制到容器中,并使用 pip 安装需求。欲了解更多信息,请阅读here

    然后,您只需定义您的docker-compose.yml 文件:

    # docker-compose.yml
    db:
      image: postgres
    web:
      build: .
      command: python manage.py runserver 0.0.0.0:8000
      volumes:
        - .:/code
      ports:
        - "8000:8000"
      links:
        - db
    

    在这里,您已经定义了 Postgres 服务,该服务是根据最新的 postgres 映像构建的。然后,您已经定义了 Django 应用程序的服务,从当前目录构建它,公开端口 8000,以便您可以从容器外部访问它,链接到数据库容器(这样它们就可以神奇地进行通信,而无需您提供任何特定的东西- 更多详细信息here) 并使用您通常用于启动 Django 应用程序的经典命令启动容器。此外,还定义了一个卷,以便将您正在编写的代码与容器内的代码同步(这样您就无需在每次更改代码时都重新构建映像)。

    与拥有最新的 Django 版本相关,您只需在 requirements.txt 文件中指定它即可。

    【讨论】:

    • 非常感谢,太完美了!非常简单明了,正是我想要的!
    • 我很高兴它有帮助。不久前我也遇到过同样的情况,我知道一些帮助可以让你快速启动并运行:)
    猜你喜欢
    • 1970-01-01
    • 2013-12-26
    • 2014-03-16
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 2019-08-25
    • 2013-07-20
    相关资源
    最近更新 更多