加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

python-Docker化现有的Django项目

发布时间:2020-12-16 03:26:29 所属栏目:安全 来源:网络整理
导读:我无法确定如何对现有的Django应用进行docker化. 我已经阅读了Docker的this official manual,其中介绍了如何在创建Docker映像期间创建Django项目,但是我需要使用相同的方法对现有项目进行Docker化. 这种方法的主要目的是,我不需要一直在本地构建docker映像,

我无法确定如何对现有的Django应用进行docker化.
我已经阅读了Docker的this official manual,其中介绍了如何在创建Docker映像期间创建Django项目,但是我需要使用相同的方法对现有项目进行Docker化.

这种方法的主要目的是,我不需要一直在本地构建docker映像,而我想要实现的是将我的代码推送到具有docker-hub watcher的远程存储库中,并且代码库已更新,正在服务器上自动构建.

现在,我的Dockerfile看起来像:

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install Django
RUN pip install djangorestframework
RUN pip install PyQRCode
ADD . /code/

谁能解释我应该如何构成Dockerfile,是否需要使用docker-compose.yml(如果是:如何?)来实现上述功能?

Solution for this question:

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
RUN pip install *name of package*
RUN pip install *name of another package*
ADD . /code/
EXPOSE 8000
CMD python3 manage.py runserver 0.0.0.0:8000

要么

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
EXPOSE 8000
CMD python3 manage.py runserver 0.0.0.0:8000

requirements.txt应该是软件包的简单列表,例如:

Django==1.11
djangorestframework
pyqrcode
pypng
最佳答案
这个问题太广泛了.您创建的Dockerfile会发生什么?

除非您有多个需要交互的容器,否则不需要docker compose.

当前Dockerfile的一些一般性观察:

>最好将pip install命令折叠成一个语句.在docker中,每个语句都会创建一个文件系统层,而pip install命令之间的层可能没有用处.
>最好在具有固定版本号(foopackage == 0.0.1)的setup.py或requirements.txt文件(pip install -r requirements.txt)中声明依赖项,以确保可重复构建.
>我建议将您的Django应用打包到一个python包中,然后使用pip(cd / code /; pip install.)安装,而不是直接添加代码目录.
>您缺少执行该应用程序的语句(CMD或ENTRYPOINT).查看https://docs.docker.com/engine/reference/builder/#cmd

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读