Фронтенд Angular не получает данные от бэкенда Django на контейнере Docker
У меня есть приложение, которое использует Angular (с Nginx), Django и MySQL. Каждый из них контейнеризирован отдельно на AWS Ubuntu instance. Я смог подключиться из контейнера Django к контейнеру Mysql и выполнить миграцию для Django. Ни страница входа не заполняется данными, ни я не могу войти в систему, используя учетные данные, хранящиеся в базе данных. Без docker все работает нормально, хотя если я устанавливаю его на систему ubuntu. Вот файлы Dockerfiles и docker-compose.yml для справки.
Dockerfile для frontend:
# stage 1 -- download node image and build the frontend image
FROM node:12 as node
WORKDIR /app
COPY frontend/package.json ./
RUN npm
install -g @angular/cli
RUN npm install
COPY frontend/. .
RUN ng build
# stage 2
FROM nginx:alpine
COPY --from=node /app/dist /usr/share/nginx/html
COPY frontend/nginx.conf /etc/nginx/conf.d/default.conf
Dockerfile для бэкенда:
FROM python:3.8
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /web
COPY backend/requirement.txt ./
# copy project
COPY backend/. .
RUN apt-get update
RUN apt-get --assume-yes install gcc
RUN apt-get install -y default-libmysqlclient-dev
RUN pip3 install -r requirement.txt
docker-compose.yml
version: "3.9"
services:
db:
image: mysql:5.7.21
restart: always
command: --default-authentication-plugin=mysql_native_password
ports:
- "3306:3306"
environment:
- MYSQL_DATABASE=database
- MYSQL_USER=root
- MYSQL_PASSWORD=root
- MYSQL_ROOT_PASSWORD=root
volumes:
- data:/var/lib/mysql
frontend:
build:
context: .
dockerfile: ./frontend/Dockerfile
restart: always
ports:
- "80:80"
depends_on:
- backend
backend:
build:
context: .
dockerfile: ./backend/Dockerfile
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/backend
ports:
- "8000:8000"
depends_on:
- db
volumes:
data:
Все три контейнера запущены и ниже приведен журнал docker-compose, который я получаю, который выглядит нормально.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dd15fc058b01 code_frontend "/docker-entrypoint.…" 47 minutes ago Up 47 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp code_frontend_1
c29e00956296 code_backend "python manage.py ru…" 47 minutes ago Up 47 minutes 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp code_backend_1
089028d67654 mysql:5.7.21 "docker-entrypoint.s…" 47 minutes ago Up 47 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp code_db_1
db_1 | 2021-08-16T07:49:24.541130Z 0 [Note] InnoDB: Buffer pool(s) load completed at 210816 7:49:24
db_1 | 2021-08-16T07:49:24.547543Z 0 [Note] Event Scheduler: Loaded 0 events
db_1 | 2021-08-16T07:49:24.547819Z 0 [Note] mysqld: ready for connections.
db_1 | Version: '5.7.21' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)
frontend_1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
frontend_1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
frontend_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
frontend_1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
frontend_1 | 10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
frontend_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
frontend_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
frontend_1 | /docker-entrypoint.sh: Configuration complete; ready for start up
frontend_1 | 2021/08/16 07:49:25 [notice] 1#1: using the "epoll" event method
frontend_1 | 2021/08/16 07:49:25 [notice] 1#1: nginx/1.21.1
frontend_1 | 2021/08/16 07:49:25 [notice] 1#1: built by gcc 10.3.1 20210424 (Alpine 10.3.1_git20210424)
frontend_1 | 2021/08/16 07:49:25 [notice] 1#1: OS: Linux 5.4.0-1045-aws
frontend_1 | 2021/08/16 07:49:25 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
frontend_1 | 2021/08/16 07:49:25 [notice] 1#1: start worker processes
frontend_1 | 2021/08/16 07:49:25 [notice] 1#1: start worker process 30
frontend_1 | 2021/08/16 07:49:25 [notice] 1#1: start worker process 31
backend_1 | Watching for file changes with StatReloader
backend_1 | Performing system checks...
backend_1 |
backend_1 | System check identified no issues (1 silenced).
backend_1 | August 16, 2021 - 07:49:28
backend_1 | Django version 3.1.2, using settings 'backend.settings'
backend_1 | Starting development server at http://0.0.0.0:8000/
backend_1 | Quit the server with CONTROL-C.
Я просмотрел несколько постов на stackoverflow, но ничего не помогает.
Любая помощь будет принята с благодарностью.