python測試開發django-83.Dockerfile部署django項目


前言

現在流行用 docker 部署環境,python 開發的 django 項目也可以寫個 Dockefile 文件,方便docker部署。
django 是依賴於python環境的,所有鏡像制作是用一個python的鏡像基礎上把我們需要的環境添加過去就可以了。

Dockefile 文件

Dockefile的編寫參考前面這篇https://www.cnblogs.com/yoyoketang/p/11397597.html

FROM python:3.6.8

MAINTAINER yoyo  <283340479@qq.com>

# 更新下apt列表
RUN apt-get update

# 更新pip
RUN pip install --upgrade pip --index-url https://pypi.douban.com/simple

# 工作目錄
WORKDIR /code
ADD . /code

# pip安裝依賴包
RUN pip install -r requirements.txt --index-url https://pypi.douban.com/simple

# 打開容器的8000端口
EXPOSE 8000

# 執行命令行,啟動django服務
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

requirements.txt 是django項目需要的依賴包,是開發完 django 項目之后,通過 pip 生成的

pip freeze >requirements.txt

Dockefile 和requirements.txt都是放到 django 項目的根目錄下

build鏡像

Dockefile 文件完成后,其它小伙伴拿到項目源碼包,就可以在任意地方部署了。
把整個代碼包放到 linux 服務器上,使用 docker 來 build 一個鏡像

docker build -t django_yoyo .

這時候會看到build的步驟,等依賴包安裝完成

[root@VM_0_2_centos yoyo]# docker build -t django_yoyo .
Sending build context to Docker daemon  7.729MB
Step 1/9 : FROM python:3.6.8
 ---> 48c06762acf0
Step 2/9 : MAINTAINER yoyo  <283340479@qq.com>
 ---> Using cache
 ---> 791e4b982a47
Step 3/9 : RUN apt-get update
 ---> Using cache
 ---> 4d9a2088753e
Step 4/9 : RUN pip install --upgrade pip --index-url https://pypi.douban.com/simple
 ---> Using cache
 ---> d896cb71a359
Step 5/9 : WORKDIR /code
 ---> Using cache
 ---> c4d15025b172
Step 6/9 : ADD . /code
 ---> 8dcd424c81cd
Step 7/9 : RUN pip install -r requirements.txt --index-url https://pypi.douban.com/simple
 ---> Running in 8b84c81bfe5e
Step 8/9 : EXPOSE 8000
 ---> Running in d02c088d286d
Removing intermediate container d02c088d286d
 ---> 87bda6266abe
Step 9/9 : CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
 ---> Running in 1e616dd15c29
Removing intermediate container 1e616dd15c29
 ---> 984e5b0a9896
Successfully built 984e5b0a9896
Successfully tagged django_yoyo:latest

當看到 Successfully built 鏡像就制作完成了,可以使用docker images查看鏡像

[root@VM_0_2_centos yoyo]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
django_yoyo         latest              984e5b0a9896        58 seconds ago      1.2GB

這是本地鏡像的制作過程,有鏡像倉庫的小伙伴,上傳到鏡像倉庫,其它小伙伴部署起來更方便,直接通過docker pull就可以拉到鏡像了。
鏡像倉庫上傳參考這篇https://www.cnblogs.com/yoyoketang/p/11923263.html

啟動容器

docker run 運行容器,將容器8000端口映射到宿主機8000端口

docker run -d -p 8000:8000 --name web_yoyo1 django_yoyo

查看容器狀態'docker ps -a'查看容器是否是Up狀態

[root@VM_0_2_centos yoyo]# docker ps -a
CONTAINER ID        IMAGE                       COMMAND                  CREATED              STATUS                  PORTS                   NAMES
ffd12bbbc16a        django_yoyo                 "python manage.py ru…"   About a minute ago   Up About a minute       0.0.0.0:8000->8000/tcp  

容器啟動成功就可以訪問django項目的頁面了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM