新聞中心
使用 Django 入門 Fig
我們現(xiàn)在將使用 Fig 配置并運(yùn)行一個(gè) Django/PostgreSQL 應(yīng)用。在此之前,先確保 Fig 已經(jīng) 安裝。

10年積累的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有五常免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
在一切工作開始前,需要先設(shè)置好三個(gè)必要的文件。
第一步,因?yàn)閼?yīng)用將要運(yùn)行在一個(gè)滿足所有環(huán)境依賴的 Docker 容器里面,那么我們可以通過編輯 Dockerfile 文件來指定 Docker 容器要安裝內(nèi)容。內(nèi)容如下:
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/以上內(nèi)容指定應(yīng)用將使用安裝了 Python 以及必要依賴包的鏡像。更多關(guān)于如何編寫 Dockerfile 文件的信息可以查看 鏡像創(chuàng)建 和 Dockerfile 使用。
第二步,在 requirements.txt 文件里面寫明需要安裝的具體依賴包名 。
Django
psycopg2就是這么簡(jiǎn)單。
第三步,fig.yml 文件將把所有的東西關(guān)聯(lián)起來。它描述了應(yīng)用的構(gòu)成(一個(gè) web 服務(wù)和一個(gè)數(shù)據(jù)庫)、使用的 Docker 鏡像、鏡像之間的連接、掛載到容器的卷,以及服務(wù)開放的端口。
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db查看 fig.yml 章節(jié) 了解更多詳細(xì)的工作機(jī)制。
現(xiàn)在我們就可以使用 fig run 命令啟動(dòng)一個(gè) Django 應(yīng)用了。
$ fig run web django-admin.py startproject figexample .Fig 會(huì)先使用 Dockerfile 為 web 服務(wù)創(chuàng)建一個(gè)鏡像,接著使用這個(gè)鏡像在容器里運(yùn)行 django-admin.py startproject figexample . 指令。
這將在當(dāng)前目錄生成一個(gè) Django 應(yīng)用。
$ ls
Dockerfile fig.yml figexample manage.py requirements.txt首先,我們要為應(yīng)用設(shè)置好數(shù)據(jù)庫的連接信息。用以下內(nèi)容替換 figexample/settings.py 文件中 DATABASES = ... 定義的節(jié)點(diǎn)內(nèi)容。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}這些信息是在 postgres Docker 鏡像固定設(shè)置好的。
然后,運(yùn)行 fig up :
Recreating myapp_db_1...
Recreating myapp_web_1...
Attaching to myapp_db_1, myapp_web_1
myapp_db_1 |
myapp_db_1 | PostgreSQL stand-alone backend 9.1.11
myapp_db_1 | 2014-01-27 12:17:03 UTC LOG: database system is ready to accept connections
myapp_db_1 | 2014-01-27 12:17:03 UTC LOG: autovacuum launcher started
myapp_web_1 | Validating models...
myapp_web_1 |
myapp_web_1 | 0 errors found
myapp_web_1 | January 27, 2014 - 12:12:40
myapp_web_1 | Django version 1.6.1, using settings 'figexample.settings'
myapp_web_1 | Starting development server at http://0.0.0.0:8000/
myapp_web_1 | Quit the server with CONTROL-C.這個(gè) web 應(yīng)用已經(jīng)開始在你的 docker 守護(hù)進(jìn)程里監(jiān)聽著 5000 端口了(如果你有使用 boot2docker ,執(zhí)行 boot2docker ip ,就會(huì)看到它的地址)。
你還可以在 Docker 上運(yùn)行其它的管理命令,例如對(duì)于同步數(shù)據(jù)庫結(jié)構(gòu)這種事,在運(yùn)行完 fig up 后,在另外一個(gè)終端運(yùn)行以下命令即可:
$ fig run web python manage.py syncdb 網(wǎng)頁題目:創(chuàng)新互聯(lián)Docker教程:DockerFig實(shí)戰(zhàn)Django
分享路徑:http://m.fisionsoft.com.cn/article/ccdcsdc.html


咨詢
建站咨詢
