Команды фазы выпуска Heroku не выполняются
Я пытаюсь развернуть приложение django на heroku с помощью манифеста сборки. Приложение вроде бы развертывается правильно, но команды в фазе выпуска, похоже, не выполняются
Это мой heroku.yml:
build:
docker:
web: Dockerfile
release:
image: web
command:
- python manage.py migrate
- python manage.py collectstatic --noinput
run:
web: gunicorn hello_django.wsgi:application --bind 0.0.0.0:$PORT
Это мой Dockerfile:
FROM python:3.9-slim
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONBUFFERED 1
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
postgresql-client \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/app
# install dependencies
RUN pip install --upgrade pip
COPY requirements.txt ./
RUN pip install -r requirements.txt
# copy source code to container
COPY ./src .
# create directory for statics
RUN mkdir staticfiles
Команды, указанные в фазе выпуска, не выполняются. Я знаю это, потому что база данных не переносится, а каталог staticfiles пуст. Я также знаю, что остальная часть моего приложения на самом деле настроена правильно, потому что когда я включаю эту строку в свой Dockerfile в конце:
RUN python manage.py collectstatic
тогда статические данные собраны и приложение запущено.
Я также установил плагин heroku-manifest
с помощью этой команды:
heroku plugins:install @heroku-cli/plugin-manifest
и установил стек моего приложения на контейнер с помощью heroku stack:set container -a <app name>
Что я упускаю?
Update
Фактически, кажется, что команда migrate
выполняется, но не collectstatic
. Почему так?