forked from kongfp/TP_Admin
31
0
Fork 1

modify project name and add dockerfile

master
kongfp 2 years ago
parent 84bdc96656
commit 801ebb2663

@ -0,0 +1,33 @@
# 建立 python 3.7环境
FROM python:3.7
# 安装netcat
RUN apt-get update && apt install -y netcat
# 可选:设置镜像源为国内
COPY pip.conf /root/.pip/pip.conf
# 容器内创建 myproject 文件夹
ENV APP_HOME=/home/myproject
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME
# 将当前目录加入到工作目录中(. 表示当前目录)
ADD . $APP_HOME
# 更新pip版本
RUN /usr/local/bin/python -m pip install --upgrade pip
# 安装项目依赖
RUN pip install -r requirements.txt
# 移除\r in windows
RUN sed -i 's/\r//' ./start.sh
# 给start.sh可执行权限
RUN chmod +x ./start.sh
EXPOSE 8000
# 数据迁移并使用uwsgi启动服务
ENTRYPOINT /bin/bash ./start.sh

@ -1,5 +1,5 @@
"""
ASGI config for TP_Api project.
ASGI config for TP_API project.
It exposes the ASGI callable as a module-level variable named ``application``.
@ -11,6 +11,6 @@ import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TP_Api.settings')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TP_API.settings')
application = get_asgi_application()

@ -1,5 +1,5 @@
"""
Django settings for TP_Api project.
Django settings for TP_API project.
Generated by 'django-admin startproject' using Django 3.2.19.
@ -49,13 +49,13 @@ MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'TP_Api.urls'
ROOT_URLCONF = 'TP_API.urls'
TEMPLATES = [
{
@ -73,7 +73,7 @@ TEMPLATES = [
},
]
WSGI_APPLICATION = 'TP_Api.wsgi.application'
WSGI_APPLICATION = 'TP_API.wsgi.application'
# Database

@ -1,5 +1,5 @@
"""
WSGI config for TP_Api project.
WSGI config for TP_API project.
It exposes the WSGI callable as a module-level variable named ``application``.
@ -11,6 +11,6 @@ import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TP_Api.settings')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TP_API.settings')
application = get_wsgi_application()

@ -1,30 +0,0 @@
# Generated by Django 3.2.19 on 2023-05-25 08:07
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='MyModel',
fields=[
('uid', models.AutoField(primary_key=True, serialize=False)),
('video_hash', models.CharField(max_length=50)),
('record_time', models.DateTimeField()),
('police_id', models.CharField(max_length=50)),
('event_type', models.IntegerField()),
('is_violation', models.BooleanField()),
('small_image', models.CharField(max_length=50)),
('relative_time', models.IntegerField()),
('video_dir', models.CharField(max_length=50)),
('car_number', models.CharField(max_length=50)),
('ai_analysis', models.CharField(max_length=50)),
],
),
]

@ -1,23 +0,0 @@
# Generated by Django 3.2.19 on 2023-05-26 10:03
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='mymodel',
name='ai_analysis',
field=models.CharField(max_length=255),
),
migrations.AlterField(
model_name='mymodel',
name='relative_time',
field=models.FloatField(),
),
]

@ -1,35 +0,0 @@
# Generated by Django 3.2.19 on 2023-05-29 14:46
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0002_auto_20230526_1003'),
]
operations = [
migrations.CreateModel(
name='TP_Api',
fields=[
('uid', models.AutoField(primary_key=True, serialize=False)),
('video_hash', models.CharField(max_length=50)),
('record_time', models.DateTimeField()),
('police_id', models.CharField(max_length=50)),
('event_type', models.IntegerField()),
('is_violation', models.BooleanField()),
('small_image', models.CharField(max_length=50)),
('relative_time', models.FloatField()),
('video_dir', models.CharField(max_length=50)),
('car_number', models.CharField(max_length=50)),
('ai_analysis', models.CharField(max_length=255)),
('add_time', models.DateTimeField()),
('update_time', models.DateTimeField()),
('is_display', models.BooleanField()),
],
),
migrations.DeleteModel(
name='MyModel',
),
]

@ -1,23 +0,0 @@
# Generated by Django 3.2.19 on 2023-05-31 10:32
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0003_auto_20230529_1446'),
]
operations = [
migrations.AlterField(
model_name='tp',
name='small_image',
field=models.CharField(max_length=100),
),
migrations.AlterField(
model_name='tp',
name='video_dir',
field=models.CharField(max_length=100),
),
]

@ -1,18 +0,0 @@
# Generated by Django 3.2.19 on 2023-05-31 14:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0004_auto_20230531_1032'),
]
operations = [
migrations.AlterField(
model_name='tp',
name='event_type',
field=models.CharField(max_length=50),
),
]

@ -1,28 +0,0 @@
# Generated by Django 3.2.19 on 2023-05-31 17:57
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0005_alter_tp_event_type'),
]
operations = [
migrations.AlterField(
model_name='tp',
name='add_time',
field=models.DateTimeField(auto_now=True),
),
migrations.AlterField(
model_name='tp',
name='is_display',
field=models.BooleanField(default=True),
),
migrations.AlterField(
model_name='tp',
name='update_time',
field=models.DateTimeField(auto_now_add=True),
),
]

@ -1,23 +0,0 @@
# Generated by Django 3.2.19 on 2023-06-01 10:42
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0006_auto_20230531_1757'),
]
operations = [
migrations.AlterField(
model_name='tp',
name='add_time',
field=models.DateTimeField(auto_now_add=True),
),
migrations.AlterField(
model_name='tp',
name='update_time',
field=models.DateTimeField(auto_now=True),
),
]

Binary file not shown.

@ -6,7 +6,7 @@ import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TP_Api.settings')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TP_API.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:

@ -0,0 +1,6 @@
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
[list]
format=columns

Binary file not shown.

@ -0,0 +1,8 @@
#!/bin/bash
python manage.py makemigrations&&
python manage.py migrate&&
uwsgi --ini /home/myproject/uwsgi.ini&&
echo 'TP项目启动完成'
exec "$@"

@ -0,0 +1,38 @@
[uwsgi]
project=myproject
uid=www-data
gid=www-data
base=/home
chdir=%(base)/%(project)
module=TP_API.wsgi:application
master=True
processes=2
http=0.0.0.0:8000
chown-socket=%(uid):www-data
chmod-socket=664
vacuum=True
max-requests=5000
pidfile=%(base)/%(project)/logs/%(project)-master.pid
daemonize=%(base)/%(project)/logs/%(project)-uwsgi.log
#设置一个请求的超时时间(秒),如果一个请求超过了这个时间,则请求被丢弃
harakiri = 60
post buffering = 8192
buffer-size= 65535
#当一个请求被harakiri杀掉会会输出一条日志
harakiri-verbose = true
#开启内存使用情况报告
memory-report = true
#设置平滑的重启(直到处理完接收到的请求)的长等待时间(秒)
reload-mercy = 10
#设置工作进程使用虚拟内存超过N MB就回收重启
reload-on-as= 1024
Loading…
Cancel
Save