Django服务器启动后运行其他脚本

时间:2020-09-08 06:49:10

标签: python django docker docker-compose

我有一个通过docker-compose运行的简单Django API,我想在服务器启动后运行脚本bot.py。我如何使用Docker做到这一点?

我的Dockerfile

FROM python:3.8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
COPY . /code/

还有docker-compose.yml

version: '3'

services:
    web:
        build: .
        command: bash -c 'python3 network/manage.py makemigrations &&
                          python3 network/manage.py migrate &&
                          python3 network/manage.py runserver 0.0.0.0:8000'
        volumes: 
            - .:/code
        ports: 
            - "8000:8000"

我尝试添加CMD [ "python", "./bot_new/bot.py" ],但实际上不起作用

1 个答案:

答案 0 :(得分:0)

您可以按照this教程在Django命令中转换脚本,然后在应用就绪后在主应用中执行命令,如下所示:

from django.core.management import call_command
from django import apps

class MyAppConfig(apps.AppConfig):
name = 'myapp'

def ready(self):
    call_command('bot')