部署过程

1.查看镜像

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
centos                    latest              9f38484d220f        3 weeks ago         202MB

2.在/opt下建立了docker目录,下载一个django-2.1.7的源码包,

touch Dockerfile和run.sh,其中run.sh是用来执行Django的bash脚本,Dockerfile即为自动build python的文件,此文中的核心也是Dockerfile.

下载阿里云扩展源epel.repo文件,也放在此目录

wget https://media.djangoproject.com/releases/2.1/Django-2.1.7.tar.gz
wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

cp /etc/yum.repos.d/CentOS-Base.repo /opt/docker

使用Dockerfile封装Django镜像

3.编写Dockerfile

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.7.tar.gz /opt/

WORKDIR /opt/
RUN mv Django-2.1.7 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"]
FROM centos
MAINTAINER TigerLee

ADD CentOS-Base.repo /etc/yum.repos.d
ADD epel.repo /etc/yum.repos.d  # 将当前目录的epel.repo文件拷贝到容器的/etc/yum.repos.d目录下
RUN yum clean all
RUN yum makecache
RUN yum update -y  # 运行命令

RUN yum install -y python36
RUN yum install -y python36-pip
RUN pip3 install setuptools
ADD Django-2.1.7.tar.gz /opt/

WORKDIR /opt/  # 进入/opt目录
RUN mv Django-2.1.7 django  # 运行命令mv

WORKDIR /opt/django    # 进入/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"]  # 容器启动时默认执行的命令
详细配置

相关文章: