docker单容器部署Django + Uwsgi-20220320
容器文件结构
作业顺序
生成images
- 把uwsgi.ini放进去images文件包里
[uwsgi]
project=training_system
#uid=www-data
#gid=www-data
base=/code/package
chdir=%(base)/%(project)
module=%(project).wsgi:application
master=True
processes=2
http=0.0.0.0:8000 #这里直接使用uwsgi做web服务器,使用http。如果使用nginx,需要使用socket沟通。
buffer-size=65536
pidfile=/tmp/%(project)-master.pid
vacuum=True
max-requests=5000
daemonize=/tmp/%(project)-uwsgi.log
#设置一个请求的超时时间(秒),如果一个请求超过了这个时间,则请求被丢弃
harakiri=60
#当一个请求被harakiri杀掉会,会输出一条日志
harakiri-verbose=true
- 记得修改settings.py设定
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
STATIC_ROOT = os.path.join(BASE_DIR, "/static/")
- start.sh 编写(其实也可以叫runserver-docker.sh之类的)
#!/bin/bash
# 从第一行到最后一行分别表示:
# 0. 收集静态文件
# 1. 生成数据库迁移文件
# 2. 根据数据库迁移文件来修改数据库
# 3. 用 uwsgi启动 django 服务, 不再使用python manage.py runserver
python manage.py collectstatic --noinput&&
python manage.py makemigrations&&
python manage.py migrate&&
#uwsgi --ini /code/package/uwsgi.ini
uwsgi --ini uwsgi.ini
# python manage.py runserver 0.0.0.0:8000
(uwsgi --ini uwsgi.ini有可能会报错,下面再解决这个问题)
- 修改dockfile不要直接启动应用,等容器启动后我们再手动启动应用
FROM python:3.8-slim
COPY ./Django /code
WORKDIR /code/package
RUN pip install -r requirements.txt
RUN chmod 777 /code/package/runserver-docker.sh
EXPOSE 8000
#CMD ["/bin/sh","/code/package/runserver-docker.sh"]
- 生成images
docker build -t training_dashboard_v2b_uwsgi .
进入容器安装uwsgi包
可参考我的文章【docker】如何在docker中安装uwsgi包
- 主要指令如下:
docker exec -it < container > /bin/bash
apt-get update
apt-get install gcc
pip install uwsgi
(可选)进入容器,手动实现uwsgi初始化
start.sh 中uwsgi --ini uwsgi.ini有可能会报错,故可进入容器,手动实现uwsgi初始化。
uwsgi --ini uwsgi.ini
uwsgi初始化成功显示[uWSGI] getting INI configuration from uwsgi.ini
参考链接
原创Docker部署Django由浅入深系列(上):单容器部署Django Uwsgi
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbhgja
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01