返回顶部
首页 > 资讯 > 后端开发 > Python >docker 运行Django项目
  • 624
分享到

docker 运行Django项目

项目dockerDjango 2023-01-31 08:01:56 624人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

已经写好了一个Django项目,需要将这个项目用Docker封装一个镜像,使用k8s发布!在封装并运行的过程中,发现了很多问题,这里会一一介绍! 采用的是镜像是 ubuntu:16.04 默认的时区是UTC,比

已经写好了一个Django项目,需要将这个项目用Docker封装一个镜像,使用k8s发布!

在封装并运行的过程中,发现了很多问题,这里会一一介绍!

 

采用的是镜像是 ubuntu:16.04 默认的时区是UTC,比中国时间,晚了8个小时!

那么因此,需要将默认的时区给覆盖掉!

 

默认是没有安装 tzdata,因此没有 /usr/share/zoneinfo 目录!

安装tzdata,使用命令

apt-get install -y tzdata

 设置时区为 上海,使用以下命令

TZ=Asia/Shanghai
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

默认的系统编码是ascii,因此不支持中文!

需要安装 locales 软件包

apt-get install -y locales

 

设置utf-8编码

locale-gen en_US.UTF-8

设置全局变量

LANG en_US.UTF-8
LANGUAGE en_US:en
LC_ALL en_US.UTF-8

设置utf-8编码之后,那么在python的print命令,就可以输出中文了,而不会提示

'ascii' codec can't encode characters in position 8-50: ordinal not in range(128)

Python文件头部,记得增加一行代码,指定utf-8编码

coding: utf-8

启动问题

在ubuntu:16.04 的镜像中,默认是没有cron包的,所以需要手动安装

apt-get install -y cron

那么启动任务计划时,不能使用命令 /etc/init.d/cron start 以及 service cron start

在dockerfile中,会启动不成功的。

必须使用 /usr/sbin/cron 命令,才能启动成功!

 

添加问题

一般来讲,添加任务计划,直接修改 /etc/crontab 文件即可。

在dockerfile 中,不能使用echo EOF 等命令修改/etc/crontab文件

必须使用 sed 命令修改/etc/crontab文件,才能成功!

如果需要在最后一行添加任务计划,可以使用以下命令:

语法:

sed -i '$a需要添加的内容' 文件名


比如:

sed -i '$a* * * * * root python3 /messagecenter/cron/voc_receipt.py' /etc/crontab

 新建空目录

mkdir /opt/messagecenter

目录结构如下:

./
├── dockerfile
├── messagecenter.tar
├── run.sh
└── sources.list

dockerfile

FROM ubuntu:16.04
# 修改更新源为阿里云
ADD sources.list /etc/apt/sources.list
ADD messagecenter.tar /
# 时区为上海
ENV TZ Asia/Shanghai

# 设置时区,设置utf-8编码,安装djanGo,添加任务计划
RUN apt-get update && apt-get install -y tzdata locales python3-pip cron && apt-get clean all && \
    ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && \
    locale-gen en_US.UTF-8 && \
    pip3 install django requests

# 解决中文乱码问题
#RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

EXPOSE 8000
# 添加启动脚本
ADD run.sh .
RUN chmod 755 run.sh
ENTRYPOINT [ "/run.sh"]

messagecenter.tar  这个是Django项目,已经打成tar包了。在dockerfile中,执行ADD命令时,会自动解压tar包

 

run.sh

#!/bin/bash

# 启动任务计划
/usr/sbin/cron

# 最后一行增加任务计划
sed -i '$a* * * * * root python3 /messagecenter/cron/voc_receipt.py' /etc/crontab

# 启动django项目
cd /messagecenter/
python3 manage.py runserver 0.0.0.0:8000

在Django项目中,有一个python脚本,需要每分钟执行一次!

 

sources.list

deb Http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu xenial-security main restricted
deb http://mirrors.aliyun.com/ubuntu xenial-security universe
deb http://mirrors.aliyun.com/ubuntu xenial-security multiverse

生成镜像

docker build -t messagecenter /opt/messagecenter

启动镜像

docker run -d -it -p 8000:8000 messagecenter

访问页面:

http://192.168.0.162:8000

就可以访问Django的默认页面了!

 


--结束END--

本文标题: docker 运行Django项目

本文链接: https://lsjlt.com/news/193549.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • docker 运行Django项目
    已经写好了一个Django项目,需要将这个项目用docker封装一个镜像,使用k8s发布!在封装并运行的过程中,发现了很多问题,这里会一一介绍! 采用的是镜像是 ubuntu:16.04 默认的时区是UTC,比...
    99+
    2023-01-31
    项目 docker Django
  • 用pycharm运行django项目
    【点击】run -> Edit Configrations 弹出如下页面 点击“+” 点击Django server 在弹出页面的host填0.0.0.0 点击这个“文件夹” 点击‘+’后填下面的文字 然后就一直点OK键就...
    99+
    2023-01-30
    项目 pycharm django
  • pycharm运行Django项目,提示
    确认pycharm编码都是utf-8的情况下,需要修改项目中settings.py 'DIRS': [ ],默认是空,将路径加入即可解决。 TEMPLATES = [ { 'BACKEND': 'django.t...
    99+
    2023-01-31
    提示 项目 pycharm
  • pycharm如何运行django项目
    如何在 pycharm 中运行 django 项目?创建 django 项目(选择 python 和 django 模板)。配置 django 项目(启用调试模式,添加允许主机)。创建运...
    99+
    2024-04-25
    python pycharm
  • Docker实战之运行项目
    在本篇文章里小编给大家分享的是关于docker运行项目的方法和实例,需要的朋友们学习参考下。1、进入存放自己项目war的目录...
    99+
    2023-06-04
  • 教你pycharm运行Django第一个项目
    下面步骤展示的是如何经过VirtualBox管理器,使得pycharm和ubuntu中的项目环境连接对应起来! 如果你有属于自己的服务器,核心步骤都是大差不差的,甚至使用服务器步骤...
    99+
    2024-04-02
  • docker怎么部署django项目
    要部署Django项目,可以使用Docker进行容器化部署。以下是一些基本的步骤:1. 首先,确保已经在本地安装了Docker和Do...
    99+
    2023-10-09
    django docker
  • docker中如何部署django项目
    要在Docker中部署Django项目,可以按照以下步骤进行操作: 创建Django项目:首先在本地创建一个Django项目,可...
    99+
    2024-04-02
  • Docker中怎么配置Tomcat并运行web项目
    这篇文章主要讲解了“Docker中怎么配置Tomcat并运行web项目”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker中怎么配置Tomcat并运行web项目”吧!一、安装Tomca...
    99+
    2023-06-27
  • 【云原生| Docker】 部署 Django & mysql 项目
    🤵‍♂️ 个人主页: @计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 🌐 推荐一款找工作神器网站: 点...
    99+
    2023-09-01
    云原生 docker django python 后端
  • 在django项目中,如何单独运行某个python文件
    有时候,我们可能想在django中写一些代码来测试某些功能,我们希望在django项目中单独运行某个python文件来做这项测试工作。 但是如果直接执行命令python xxx.py...
    99+
    2024-04-02
  • 在django项目中怎么单独运行某个python文件
    这篇文章给大家分享的是有关在django项目中怎么单独运行某个python文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。go是什么golang是一种编译语言,可以将代码编译为机器代码,编译后的二进制文件可以直...
    99+
    2023-06-14
  • eclipse怎么运行项目
    eclipse怎么运行项目eclipse运行项目的方法:首先选中需要运行的Java类文件;然后右键,选择“Run As”,选择并点击“Java Application”即可。 见下图Java程序代码以及运行结果:推荐:《Java教程》...
    99+
    2015-07-14
    java教程 eclipse
  • myeclipse怎么运行项目
    myeclipse怎么运行项目?打开MyEclipse的页面,看图右键项目,打开右键菜单列表,看图按下 Debug as/Run as,打开列表来,看图按下MyEclipse server application,打开server sele...
    99+
    2017-11-06
    java教程 myeclipse
  • 怎么运行vue项目
    本篇内容主要讲解“怎么运行vue项目”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么运行vue项目”吧!一、运行vue项目1、下载node.js安装完成后分别在cmd中执行node -v查看是...
    99+
    2023-07-01
  • 怎么使用Docker组件开发Django项目
    本篇内容主要讲解“怎么使用Docker组件开发Django项目”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Docker组件开发Django项目”吧!Docker 是一个开源的应用容器引...
    99+
    2023-06-19
  • 解决PHP项目在Docker(WSL2)中运行缓慢的问题
    环境 Windows 11 Docker Desktop 4.17.1(开启WSL2) WSL2(Ubuntu-22.04) 前言 最近在使用Docker容器运行PHP项目的时候,发现特别缓慢。例如一...
    99+
    2023-08-31
    docker WSL
  • ubuntu16.04在python3 下创建Django项目并运行的操作方法
    第一步:创建django项目   打开终端,切换到期望所写项目的地址:cd python3_django_projects;   输入命令:django-admin.py startproject Hello;(即创建好...
    99+
    2022-06-04
    ubuntu python python3 创建Django
  • vscode如何运行vue项目
    在vscode中运行vue项目的方法:1.打开vscode,创建工作空间;2.点击左侧菜单栏“扩展”选项;3.安装vetur扩展,配置setting.json文件;4.打开终端;5.执行npm install命令;具体步骤如下:首先,打开v...
    99+
    2024-04-02
  • eclipse如何运行android项目
    要在Eclipse中运行Android项目,您需要按照以下步骤操作:1. 打开Eclipse,并确保您已经安装了Android开发工...
    99+
    2023-09-21
    eclipse android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作