使用 Docker Compose 设置 Django/PostgreSQL 项目的正确方法是什么?
What is the correct way to set up a Django/PostgreSQL project with 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
!使用magic -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
文件中指定即可。
你能告诉我使用 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
!使用magic -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
文件中指定即可。