1. 程式人生 > 實用技巧 >使用dockerfile封裝django映象

使用dockerfile封裝django映象

準備工作

/opt/建立一個docker資料夾,然後下載一些相關配置

cd /opt/
mkdir docker
cd docker 
wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #阿里雲拓展原始檔
wget -O /opt/docker/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo
自行準備上傳一個django2.1.15的tar壓縮包  django官網去下載


docker目錄下再建立兩個檔案

touch Dockerfile
vim run.sh

run.sh

檔案中新增如下程式碼

python3 manage.py runserver 0.0.0.0:8000

Dockerfile檔案中新增如下程式碼
完整版

FROM centos  # 指定基礎物件
MAINTAINER LiuWei  # 指定作者

ADD CentOS-Base.repo /etc/yum.repos.d   # ADD新增的意思(如果是壓縮檔案,也會自動解壓)
ADD epel.repo /etc/yum.repos/d  #將當前目錄的epel.repo檔案新增到容器的/etc/yum.repos.d目錄下
RUN yum clean all  #清除全部快取
RUN yum makecache #建立新的快取
RUN yum update -y  #更新yum工具

RUN yum install -y python36  #安裝python3
RUN yum install -y python36-pip #安裝python3的pip
RUN pip3 install setuptools
ADD Django-2.1.15.tar.gz /opt/  #將django壓縮包新增到容器的opt目錄下並解壓

WORKDIR /opt/   #進入/opt目錄
RUN mv Django-2.1.15 django  #執行命令 mv將原來的名字改成django

WORKDIR /opt/django  #進入改名後的/opt/django目錄
RUN python3 setup.py install  #安裝django必需執行的的命令

WORKDIR /opt #進入opt目錄
RUN django-admin.py startproject qishidj  # 建立django專案

ADD run.sh /opt/qinshidj/run.sh   #新增指令碼到目錄下
RUN sed -i 's/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['\*'\]/g' /opt/qishidj/qishidj/settings.py #修改django中settings檔案中的ALLOWED_HOSTS的值
WORKDIR /opt/qishidj
RUN chmod 777 run.sh   #賦讀寫執行許可權
EXPOSE 8000  #宣告容器埠
CMD ["/bin/sh","run.sh"]  #容器啟動時預設執行的命令

目前使用版

FROM centos
FROM python:3.6.6

ADD CentOS-Base.repo /etc/yum.repos.d
ADD epel.repo /etc/yum.repos.d

RUN pip3 install setuptools
ADD Django-2.1.15.tar.gz /opt/

WORKDIR /opt/
RUN mv Django-2.1.15 django

WORKDIR /opt/django
RUN python3 setup.py install

WORKDIR /opt
RUN django-admin.py startproject qishidj

ADD run.sh /opt/qishidj/run.sh
RUN sed -i "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['\*'\]/g" /opt/qishidj/qishidj/settings.py
WORKDIR /opt/qishidj
RUN chmod 777 run.sh
EXPOSE 8000
CMD ["/bin/sh","run.sh"]

開始構建

docker build -t qishi8/django-217 .   # build構建, .表示在本地執行必須加

成功後會出現,說明成功了

然後啟動生成的映象

docker run -d -p 5000:8000 qishidj/django-2115   # 要注意先後順序  不然報錯

然後頁面訪問,是能夠成功訪問的