Настройка docker-compose.yaml для vue, redis, celery и django

Я планирую запускать приложение одной командой из терминала. Однако при конфигурировании docker-compose.yaml столкнулся со множеством проблем и пробелов в своих знаниях. Составив наконец этот файл понял что работает только redis а остальное не запускается. Сам Django работает на postgresql, а redis нужен только для нормальной работы celery, которого я пока не хочу добавлять в docker

Структура приложения

docker-compose.yaml
src/web/static/museum/(фронт приложения на vue.js)
src/manage.py
python/Dockerfile
vue-js/Dockerfile

python/Dockerfile

FROM python:3.8

ENV PYTHONUNBUFFERED 1

RUN pip install poetry==1.1.8 && poetry config virtualenvs.create false

WORKDIR /app
COPY pyproject.toml .
RUN poetry install

COPY . .

RUN python src/manage.py collectstatic --no-input

EXPOSE 8000

CMD python src/manage.py migrate && python src/manage.py runserver 0.0.0.0:8000

vue-js/Dockerfile

FROM node:lts-alpine

WORKDIR /app/src/web/static/museum

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 8080

CMD ["npm", "run", "serve"]

docker-compose.yaml

version: '3'

services:

  celery:
    build: .
    container_name: celery
    command: cd src && celery -A kpfu_museum_web worker -l info
    depends_on:
      - redis
      - app

  redis:
    image: redis:6-alpine
    ports:
      - 6379:6379

  vue:
    image: node:lts-alpine
    build:
      context: ./vue-js
      dockerfile: Dockerfile
    ports:
      - 8080:8080
    restart: always

   app:
    image: django3.2:latest
    build:
      context: ./python
      dockerfile: Dockerfile
    depends_on:
      - redis
    environment:
      DB_USER: user
      DB_NAME: name
      DB_PASSWORD: password
      CELERY_BROKER_URL: redis://redis:6379/0
    restart: always

при запуске docker-compose.yaml с задокументированным celery выдает ошибку

app_1    |     connection = Database.connect(**conn_params)
app_1    |   File "/usr/local/lib/python3.8/site-packages/psycopg2/__init__.py", line 122, in connect
app_1    |     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
app_1    | django.db.utils.OperationalError: could not connect to server: Connection refused
app_1    |      Is the server running on host "127.0.0.1" and accepting
app_1    |      TCP/IP connections on port 5432?
app_1    |
app_1 exited with code 1

однако при запуске с celery он вообще не собирается и падает в самом начале

(venv) E:\Python_Django\museum>docker-compose up
[+] Building 0.1s (1/2)
 => [internal] load build definition from Dockerfile                                                                                                                                                                               0.0s 
 => => transferring dockerfile: 2B                                                                                                                                                                                                 0.0s 
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount206843837/Dockerfile: no such file or directory

В чем именно ошибки?

Заранее вспасибо!

Вернуться на верх