天天看点

使用docker-compose部署Django项目

先从最基本的功能开始

在一切工作开始前,需要先编辑好三个必要的文件。

第一步,因为应用将要运行在一个满足所有环境依赖的 Docker 容器里面,那么我们可以通过编辑 <code>Dockerfile</code> 文件来指定 Docker 容器要安装内容。内容如下:

以上内容指定应用将使用安装了 Python 以及必要依赖包的镜像。更多关于如何编写 <code>Dockerfile</code> 文件的信息可以查看 Dockerfile 使用。

第二步,在 <code>requirements.txt</code> 文件里面写明需要安装的具体依赖包名。

第三步,<code>docker-compose.yml</code> 文件将把所有的东西关联起来。它描述了应用的构成(一个 web 服务和一个数据库)、使用的 Docker 镜像、镜像之间的连接、挂载到容器的卷,以及服务开放的端口。

现在我们就可以使用 <code>docker-compose run</code> 命令启动一个 <code>Django</code> 应用了。

由于 web 服务所使用的镜像并不存在,所以 Compose 会首先使用 <code>Dockerfile</code> 为 web 服务构建一个镜像,接着使用这个镜像在容器里运行 <code>django-admin startproject django_example</code> 指令。

这将在当前目录生成一个 <code>Django</code> 应用。

如果你的系统是 Linux,记得更改文件权限。

首先,我们要为应用设置好访问地址。用以下内容替换 <code>django_example/settings.py</code> 文件中 <code>ALLOWED_HOSTS= ...</code> 定义的节点内容。

数据库使用默认的sqlite。然后,运行 <code>docker-compose up</code> :

这个 <code>Django</code> 应用已经开始在你的 Docker 守护进程里监听着 <code>8000</code> 端口了。打开 <code>127.0.0.1:8000</code> 即可看到 <code>Django</code> 欢迎页面。

通过部署后可以发现,命令:<code>docker-compose run web django-admin startproject django_example .</code>是创建了一个基本的Djando项目,若是有现成的项目,只需要在这个目录下进行相应的文件替换,然后再执行<code>docker-compose up</code>命令即可