资讯专栏INFORMATION COLUMN

Mac Docker 创建第一个Django 应用,Part 1

sydMobile / 1966人阅读

摘要:创建第一个应用,第一步在构建容器原文翻译整理这篇文章将指导你如何用配置和启动一个简单的应用。一词我认为翻译为编制更恰当。在这里我们需要一个服务器,一个数据服务器。编制文件指明了我们这些服务所用的镜像,他们如何连接,哪些卷要挂载到容器。

Mac Docker 创建第一个Django 应用, Part 1 第一步:在Mac构建Django 容器

</>复制代码

  1. 原文:Quickstart: Compose and Django
    翻译整理:CK

这篇文章将指导你如何用Docker Compose 配置和启动一个简单的 Django + PostgreSQL 应用。请先确保您已安装Compose:
Install Docker Compose

定义您的项目组件

您需要创建一个Dockerfile 和一个Python 依赖文件,以及一个docker-compose.yml文件

创建一个项目目录

创建一个新的Dockerfile在当前项目目录下

添加内容到Dockerfile

</>复制代码

  1. FROM python:3
  2. ENV PYTHONUNBUFFERED 1
  3. RUN mkdir /code
  4. WORKDIR /code
  5. ADD requirements.txt /code/
  6. RUN pip install -r requirements.txt
  7. ADD . /code/

保存Dockerfile

创建一个 requirements.txt

Dockerfile 中的 RUN pip install -r requirements.txt 将会用到它

添加所需的软件到requirements.txt

</>复制代码

  1. Django>=1.8,<2.0
  2. psycopg2

保存requirements.txt

创建一个docker-compose.yml

docker-compose.yml文件里描述了您的app所需要的服务。compose一词我认为翻译为编制更恰当。在这里我们需要一个web服务器,一个数据服务器。编制文件指明了我们这些服务所用的镜像,他们如何连接,哪些卷要挂载到容器。最后定义服务端口。

</>复制代码

  1. version: "3"
  2. services:
  3. db:
  4. image: postgres
  5. web:
  6. build: .
  7. command: python3 manage.py runserver 0.0.0.0:8000
  8. volumes:
  9. - .:/code
  10. ports:
  11. - "8000:8000"
  12. depends_on:
  13. - db

保存 docker-compose.yml

创建一个Django项目

转到项目根目录

用docker-compose 创建项目

</>复制代码

  1. docker-compose run web django-admin.py startproject composeexample .

docker将启动web容器,并在里面执行 django-admin.py startproject composeexample,因为web镜像不存在所以compose先从当前目录建立它,见 build: 因为挂在了当前目录,所以新创建的项目文件在docker-compose run执行完推出后可以看到

ls 项目目录

</>复制代码

  1. $ ls -l
  2. drwxr-xr-x 2 root root composeexample
  3. -rw-rw-r-- 1 user user docker-compose.yml
  4. -rw-rw-r-- 1 user user Dockerfile
  5. -rwxr-xr-x 1 root root manage.py
  6. -rw-rw-r-- 1 user user requirements.txt

连接数据库

打开composeexample/settings.py

替换DATABASE = …项

</>复制代码

  1. DATABASES = {
  2. "default": {
  3. "ENGINE": "django.db.backends.postgresql",
  4. "NAME": "postgres",
  5. "USER": "postgres",
  6. "HOST": "db",
  7. "PORT": 5432,
  8. }
  9. }

这些参数是根据docker-compose.yml所指定的postgres Docker 镜像决定的。

保存

执行docker-compose up

</>复制代码

  1. $ docker-compose up
  2. djangosample_db_1 is up-to-date
  3. Creating djangosample_web_1 ...
  4. Creating djangosample_web_1 ... done
  5. Attaching to djangosample_db_1, djangosample_web_1
  6. db_1 | The files belonging to this database system will be owned by user "postgres".
  7. db_1 | This user must also own the server process.
  8. db_1 |
  9. db_1 | The database cluster will be initialized with locale "en_US.utf8".
  10. db_1 | The default database encoding has accordingly been set to "UTF8".
  11. db_1 | The default text search configuration will be set to "english".
  12. . . .
  13. web_1 | May 30, 2017 - 21:44:49
  14. web_1 | Django version 1.11.1, using settings "composeexample.settings"
  15. web_1 | Starting development server at http://0.0.0.0:8000/
  16. web_1 | Quit the server with CONTROL-C.

此时,你的Django app应该运行在8000端口上了。浏览器打开http://localhost:8000应该能看到

列出所有容器:

</>复制代码

  1. $ docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. def85eff5f51 django_web "python3 manage.py..." 10 minutes ago Up 9 minutes 0.0.0.0:8000->8000/tcp django_web_1
  4. 678ce61c79cc postgres "docker-entrypoint..." 20 minutes ago Up 9 minutes 5432/tcp django_db_1

关闭容器

Ctrl-C
或者新开一个terminal执行: docker-compose down

部署已有的项目到容器

将docker-compose.yml requirements.txt Dockerfile 拷贝到Django项目的根目录,应与manage.py同目录

运行docker-compose up

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27065.html

相关文章

  • Mac Docker 创建一个Django 应用Part 1

    摘要:创建第一个应用,第一步在构建容器原文翻译整理这篇文章将指导你如何用配置和启动一个简单的应用。一词我认为翻译为编制更恰当。在这里我们需要一个服务器,一个数据服务器。编制文件指明了我们这些服务所用的镜像,他们如何连接,哪些卷要挂载到容器。 Mac Docker 创建第一个Django 应用, Part 1 第一步:在Mac构建Django 容器 原文:Quickstart: Compose...

    KnewOne 评论0 收藏0
  • [原]打造数据产品的快速原型:DjangoDocker之旅

    摘要:而大多数数据科学研究的场景下,更快的速度也意味着更早地发现问题和完成检验假设的闭环。通常,数据科学被认为研究成果立即应用到生产环境都是比较缓慢的一个过程。 showImg(https://segmentfault.com/img/remote/1460000005771293); 概述 在数据科学研究中,快速验证想法是非常关键的一环,而如何快速开发出数据产品则可以有效推动整个数据科学项...

    zhoutao 评论0 收藏0
  • [原]打造数据产品的快速原型:DjangoDocker之旅

    摘要:而大多数数据科学研究的场景下,更快的速度也意味着更早地发现问题和完成检验假设的闭环。通常,数据科学被认为研究成果立即应用到生产环境都是比较缓慢的一个过程。 showImg(https://segmentfault.com/img/remote/1460000005771293); 概述 在数据科学研究中,快速验证想法是非常关键的一环,而如何快速开发出数据产品则可以有效推动整个数据科学项...

    zhangqh 评论0 收藏0
  • #date:2017.07.19 django app, Part 2

    摘要:这篇教程从教程,我们会配置自己的数据库,创造你的第一个模型,开始一个快捷的自动生成管理员站点。项目是一个特性网站的相关配置和应用的集合。 Writing your first django app, part 2 this tutorial begins where Tutorial 1 left off.Well setup the database, create your fir...

    MartinHan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<