簡體   English   中英

在 django 服務器啟動后運行額外的腳本

[英]Run an additional script after django server is started

我有一個通過 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" ]但它實際上不起作用

您可以按照教程在 Django 命令中轉換腳本,然后在應用程序准備就緒后在主應用程序中執行命令,如下所示:

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM