我有一个通过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" ]
,但实际上不起作用
答案 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')