使用Docker-compose离线部署Django应用的方法

2020-06-17 06:39:20易采站长站整理

$ sudo systemctl enable docker

安装开发环境的Docker-compose

Docker-ce安装完成后,Docker-compose就好办了。如果你是在Linux等平台上直接下载Docker-compose的编译好的二进制文件即可使用。

$ sudo curl -L “https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose

下载完成后修改权限加上可执行


$ sudo chmod +x /usr/local/bin/docker-compose

最后可执行一下查看Docker-compose的版本号验证一下是否成功安装


$ docker-compose --version
docker-compose version 1.24.0-rc1, build 0f3d4dda

配置开发环境

这里的开发环境是Django的环境,演示的项目为了方便演示我尽量使用一个新建的Django项目。

新建Django项目

新建一个Django项目,先创建一个上层文件夹来把项目文件放到这个文件夹中。目录结构大致如下:


--project
--Dockerfile
--docker-compose.yml
--mysite
--manage.py
--requirements.txt

先创建project文件夹


$ mkdir project

然后新建Django项目,或者你也可以把已有的项目拷贝过来。


$ django-admin.py startproject mysite

生成requirements.txt文件

上一步已经有了一个叫mysite的Django项目,假设我们把requirements.txt放到这个文件夹下,内容大致如下:


$ cat requirements.txt


defusedxml==0.5.0
diff-match-patch==20181111
Django==2.1.7
django-crispy-forms==1.7.2
django-formtools==2.1
django-import-export==1.2.0
django-reversion==3.0.3
et-xmlfile==1.0.1
future==0.15.2
httplib2==0.9.2
jdcal==1.4
odfpy==1.4.0
openpyxl==2.6.0
pytz==2018.9
PyYAML==3.13
six==1.10.0
tablib==0.12.1
unicodecsv==0.14.1
xadmin==0.6.1
xlrd==1.2.0
xlwt==1.3.0
mysqlclient==1.4.2

当然这是我的项目需要的依赖,你的依赖可能和我的不一样。

新建Dockerfile

项目有了,项目的依赖文件也有了,下一步就是创建我们的Django项目的运行环境的docker镜像了,先建一个Dockerfile来构建docker镜像。 在project文件夹新建Dockerfile,内容如下:


$ cat Dockerfile


FROM python:3.6.8
ENV PYTHONUNBUFFERED 1

RUN mkdir /config
ADD /mysite/requirements.txt /config/