Для части django вам не хватает копии вашего кода для приложения django, которое, как я предполагаю, находится в back
. Вам нужно будет добавить ADD /back /code
. Возможно, вы также захотите запустить сборку Python Alpine Docker вместо Ubuntu, так как это значительно сократит время сборки и размер контейнера.
Вот что я бы сделал:
# change this to whatever python version your app is targeting (mine is typically 3.6)
FROM python:3.6-alpine
ADD /back /code
# whatever other dependencies you'll need i run with the psycopg2-binary build so i need these (the nice part of the python-alpine image is you don't need to install any of those python specific packages you were installing before
RUN apk add --virtual .build-deps gcc musl-dev postgresql-dev
RUN pip install -r /code/requirements.txt
# expose whatever port you need for your Django app (default is 8000, we use non-default but you can do whatever you need)
EXPOSE 8000
WORKDIR /code
#dont need /code here since WORKDIR is effectively a change directory
RUN chmod +x /run-django.sh
RUN apk add --no-cache bash postgresql-libs
CMD ["/run-django.sh"]
У нас есть похожий run-django.sh
скрипт, который мы называем python manage.py makemigrations
и python manage.py migrate
. Я полагаю, что у вас похожи.
Короче говоря, вы не копировали код из back
в code
.
Также в вашем docker-compose у вас нет контекста сборки, как у службы vue.
Что касается сбоя контейнера rabbitmq, вам необходимо остановить на компьютере службу /etc
, связанную с rabbitm. Я получаю эту ошибку, если я пытаюсь открыть контейнер postgresql или контейнер redis и мне нужно /etc/init.d/postgresql stop
или /etc/init.d/redis stop
, чтобы остановить службу, запущенную на вашем компьютере, чтобы не допустить коллизий на этом порте по умолчанию для этой службы .