摘要:创建第一个应用,第一步在构建容器原文翻译整理这篇文章将指导你如何用配置和启动一个简单的应用。一词我认为翻译为编制更恰当。在这里我们需要一个服务器,一个数据服务器。编制文件指明了我们这些服务所用的镜像,他们如何连接,哪些卷要挂载到容器。
Mac Docker 创建第一个Django 应用, Part 1 第一步:在Mac构建Django 容器
原文:Quickstart: Compose and Django
翻译整理:CK
这篇文章将指导你如何用Docker Compose 配置和启动一个简单的 Django + PostgreSQL 应用。请先确保您已安装Compose:
Install Docker Compose
定义您的项目组件
您需要创建一个Dockerfile 和一个Python 依赖文件,以及一个docker-compose.yml文件
创建一个项目目录
创建一个新的Dockerfile在当前项目目录下
添加内容到Dockerfile
FROM python:3 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt ADD . /code/
保存Dockerfile
创建一个 requirements.txt
Dockerfile 中的 RUN pip install -r requirements.txt 将会用到它
添加所需的软件到requirements.txt
Django>=1.8,<2.0 psycopg2
保存requirements.txt
创建一个docker-compose.yml
docker-compose.yml文件里描述了您的app所需要的服务。compose一词我认为翻译为编制更恰当。在这里我们需要一个web服务器,一个数据服务器。编制文件指明了我们这些服务所用的镜像,他们如何连接,哪些卷要挂载到容器。最后定义服务端口。
version: "3" services: db: image: postgres web: build: . command: python3 manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" depends_on: - db
保存 docker-compose.yml
创建一个Django项目
转到项目根目录
用docker-compose 创建项目
docker-compose run web django-admin.py startproject composeexample .
docker将启动web容器,并在里面执行 django-admin.py startproject composeexample,因为web镜像不存在所以compose先从当前目录建立它,见 build: 因为挂在了当前目录,所以新创建的项目文件在docker-compose run执行完推出后可以看到
ls 项目目录
$ ls -l drwxr-xr-x 2 root root composeexample -rw-rw-r-- 1 user user docker-compose.yml -rw-rw-r-- 1 user user Dockerfile -rwxr-xr-x 1 root root manage.py -rw-rw-r-- 1 user user requirements.txt
连接数据库
打开composeexample/settings.py
替换DATABASE = …项
DATABASES = { "default": { "ENGINE": "django.db.backends.postgresql", "NAME": "postgres", "USER": "postgres", "HOST": "db", "PORT": 5432, } }
这些参数是根据docker-compose.yml所指定的postgres Docker 镜像决定的。
保存
执行docker-compose up
$ docker-compose up djangosample_db_1 is up-to-date Creating djangosample_web_1 ... Creating djangosample_web_1 ... done Attaching to djangosample_db_1, djangosample_web_1 db_1 | The files belonging to this database system will be owned by user "postgres". db_1 | This user must also own the server process. db_1 | db_1 | The database cluster will be initialized with locale "en_US.utf8". db_1 | The default database encoding has accordingly been set to "UTF8". db_1 | The default text search configuration will be set to "english". . . . web_1 | May 30, 2017 - 21:44:49 web_1 | Django version 1.11.1, using settings "composeexample.settings" web_1 | Starting development server at http://0.0.0.0:8000/ web_1 | Quit the server with CONTROL-C.
此时,你的Django app应该运行在8000端口上了。浏览器打开http://localhost:8000应该能看到
列出所有容器:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES def85eff5f51 django_web "python3 manage.py..." 10 minutes ago Up 9 minutes 0.0.0.0:8000->8000/tcp django_web_1 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/40900.html
摘要:创建第一个应用,第一步在构建容器原文翻译整理这篇文章将指导你如何用配置和启动一个简单的应用。一词我认为翻译为编制更恰当。在这里我们需要一个服务器,一个数据服务器。编制文件指明了我们这些服务所用的镜像,他们如何连接,哪些卷要挂载到容器。 Mac Docker 创建第一个Django 应用, Part 1 第一步:在Mac构建Django 容器 原文:Quickstart: Compose...
摘要:而大多数数据科学研究的场景下,更快的速度也意味着更早地发现问题和完成检验假设的闭环。通常,数据科学被认为研究成果立即应用到生产环境都是比较缓慢的一个过程。 showImg(https://segmentfault.com/img/remote/1460000005771293); 概述 在数据科学研究中,快速验证想法是非常关键的一环,而如何快速开发出数据产品则可以有效推动整个数据科学项...
摘要:而大多数数据科学研究的场景下,更快的速度也意味着更早地发现问题和完成检验假设的闭环。通常,数据科学被认为研究成果立即应用到生产环境都是比较缓慢的一个过程。 showImg(https://segmentfault.com/img/remote/1460000005771293); 概述 在数据科学研究中,快速验证想法是非常关键的一环,而如何快速开发出数据产品则可以有效推动整个数据科学项...
摘要:这篇教程从教程,我们会配置自己的数据库,创造你的第一个模型,开始一个快捷的自动生成管理员站点。项目是一个特性网站的相关配置和应用的集合。 Writing your first django app, part 2 this tutorial begins where Tutorial 1 left off.Well setup the database, create your fir...
阅读 2212·2021-11-24 11:15
阅读 3064·2021-11-24 10:46
阅读 1361·2021-11-24 09:39
阅读 3901·2021-08-18 10:21
阅读 1465·2019-08-30 15:53
阅读 1378·2019-08-30 11:19
阅读 3305·2019-08-29 18:42
阅读 2301·2019-08-29 16:58