某個(gè) Python
項(xiàng)目,基于 Python:3.6
與 Django:1.11
框架開(kāi)發(fā),希望項(xiàng)目能夠容器化,然后可以通過(guò) docker-compose
等工具編排容器/應(yīng)用,本篇文章的目標(biāo)是自定義Django基礎(chǔ)鏡像。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了江州免費(fèi)建站歡迎大家使用!
與《為什么需要自定義一個(gè)基礎(chǔ)鏡像?》文章相同,基礎(chǔ)鏡像作用是為項(xiàng)目鏡像提供支持。它構(gòu)建在 Python
官方鏡像之上,添加項(xiàng)目一些需要的擴(kuò)展模塊,例如 Django
、pyMySQL
、Gunicorn
等常用模塊,具體以項(xiàng)目實(shí)際需求為準(zhǔn)。
最后為能夠高效的處理靜態(tài)文件請(qǐng)求,使用 Nginx
反向代理 Django
應(yīng)用,不過(guò)這是下一篇文章要講的了,《Django容器(下): 使用Gunicorn管理Django》,敬請(qǐng)期待公眾號(hào)每周四 docker專題更新文章。。
容器鏡像: python:3.6
容器系統(tǒng): debian 9 (stretch)
Docker版本: CE - 17.06.0
Docker主機(jī): Ubuntu Server 16.04
tree base/
base/
├── conf
│?? ├── 404.html
│?? ├── default.conf
│?? ├── nginx.conf
│?? ├── requirements.txt
│?? ├── sources.list
│?? ├── ssl
│?? │?? ├── domain.crt
│?? │?? └── domain.key
│?? └── supervisord.conf
└── `Dockerfile`
2 directories, 9 files
cat base/Dockerfile
# start-base
FROM python:3.6
MAINTAINER dongnan #<@微信公眾號(hào):運(yùn)維錄>
# apt
COPY conf/sources.list /etc/apt/sources.list
RUN apt-get update \
&& apt-get install -y supervisor nginx \
&& apt-get clean \
&& rm -r /var/lib/apt/lists/*
# env
ENV TZ=Asia/Shanghai \
LANG=en_US.UTF-8
# django
COPY conf/requirements.txt /root/
RUN pip --no-cache-dir install -r /root/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
這個(gè) Dockerfile
很短,因?yàn)槭琼?xiàng)目基礎(chǔ)鏡像,只做一些基礎(chǔ)工作就可以了。
它首先安裝 supervisor nginx
軟件包,然后是設(shè)置容器的環(huán)境變量。
最后使用 pip
安裝項(xiàng)目依賴,django 、pymysql
都在 requirements.txt
這個(gè)文件中定義。
docker build -t start-base .
Sending build context to Docker daemon 767kB
Step 1/8 : FROM python:3.6
# ...省略
Successfully built fc3f6f242301
Successfully tagged start-base
docker images --format "{{.Repository}} {{.Tag}}"
start-base latest
最后來(lái)總結(jié)下文章中的知識(shí)點(diǎn)
項(xiàng)目鏡像
提供支持,并在基礎(chǔ)鏡像之上添加項(xiàng)目代碼,完成項(xiàng)目鏡像構(gòu)建工作。supervisor
在容器中管理 nginx、gunicorn (python WSGI Server)
進(jìn)程。pip
是 python
包管理工具,該工具提供了對(duì)python
包的查找、下載、安裝、卸載的功能。pip -i
選項(xiàng), 指定倉(cāng)庫(kù)地址,默認(rèn)為 https://pypi.org/simple,**速度很慢**建議使用國(guó)內(nèi)倉(cāng)庫(kù)。參考文章
doker&k8s Qun [703906133]
文章名稱:Django容器(上):自定義基礎(chǔ)鏡像
鏈接地址:http://aaarwkj.com/article2/ihhpoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計(jì)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)