极简方式,部署django

 本人是Docker小白,听说Docker部署程序很方便,在看了一系列的Docker体系结构以后,明白了Docker的运行过程,但是想想要自己去写一系列的操作还是挺麻烦的。

在看过django的镜像以后,突然豁然开朗,觉得这是对小白来说,最简单的部署方式呀。

 先看一下官方的示例:(这里了解步骤即可,先不要照做)

 

1.在工程目录文件下,建立Dockerfile文件,并在文件内写入

FROM django:onbuild

  

该目录下,依次执行

(构建容器)

$ docker build -t my-django-app .

(运行容器)
$ docker run --name some-django-app -d my-django-app

然后就可以输入

  http://container-ip:8000

 

当然,以上的python 使用的3.4版本。如果要切换版本的话,Dockerfile 复制粘贴django的原始Dockerfile文件,修改python基于的镜像版本即可

更多请参见:

https://hub.docker.com/_/django?tab=description

 

 

特别注意:

上面做法的思路是没有错的,但是这个镜像是三年前做的。作者已经停止更新和维护了,只能用作学习用。

在正式使用的时候,还是要修改一些内容

1.添加pip的国内镜像缓存

2.升级pip的版本,不然有些requirements.txt的安装包会出错

3.在requirements.txt中引入django的安装

 

Dockerfile文件如下:

FROM python:3.5

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        postgresql-client \
    && rm -rf /var/lib/apt/lists/* \
    && pip install --upgrade pip

WORKDIR /usr/src/app
COPY requirements.txt ./
#设置pip的镜像缓存
COPY pip.conf ~/.pip/pip.conf
RUN pip install -r requirements.txt
COPY . .

EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

pip.conf如下

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com

 

requirements.txt如下

django==2.1.2

 

如果想访问已经发布的服务。需要把docker服务的端口映射到 宿主机的端口号上。

并且一定要确保宿主机的端口是开放的(具体打开端口的规则,在阿里/腾迅云上有)

 

 

上面的部署方式,也并不完美。

因为服务提供的方式是使用  python manage.py runsever的方式,而不是类似于nginx ,apache一类的专用服务器提供的。

所以部署,还需要把 nginx 的内容打包到镜像中。

 

posted on 2019-08-12 10:46  幸福的菜菜  阅读(499)  评论(1)    收藏  举报

导航