django - 用Docker Compose设置Django/PostgreSQL项目的正确方法是什么?

标签 django docker docker-compose

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

(具有所有内容的最新版本,python 3.4,django 1.8.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文件中指定它即可。

关于django - 用Docker Compose设置Django/PostgreSQL项目的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30288220/

相关文章:

mysql - Django建模的最佳方式

python - Django 模板 FOO_set.all 返回空白

postgresql - 在 docker 中使用 pg_dump 出现“没有现有的本地集群适合”错误

python - FastAPI docker-compose 找不到文件错误

python - 使用 Python 和 Scrapy 进行递归爬取

python - 无法覆盖 django 中 NumberInput 字段的步骤属性

docker - 了解 Docker 用户/uid 创建

docker - 将目录复制到 docker 镜像中,同时跳过给定的子目录

apache-spark - docker 停止 spark 容器退出

docker - 使用 Docker 在 Windows 中安装 CentOS 7 桌面