Я клонировал свой проект из GitHub в мой AWS экземпляр Ubuntu EC2 и пытаюсь развернуть / разместить его с использованием Docker контейнеров. Интерфейс моего приложения - это Angular проект, который я встроил в папку dist, и я намерен использовать Nginx, чтобы иметь возможность его просматривать.
Бэкэнд моего приложения - это сервер Node, работающий с Express. Кажется, проблема в моей конфигурации Docker.
Когда я запускаю docker - составить --build -d , я захожу на свой IP-адрес ec2 и приложение есть, и я могу взаимодействовать с ним, но когда я пытаюсь загрузить ресурс из серверной части узла, я получаю отказ в соединении с ответом об ошибке Http в браузере, как показано ниже.
Ниже приведены мои docker файлы конфигурации:
docker -compose.yml
version: '3'
services:
web:
build: ./Crypto-Trader
ports:
- "80:80"
depends_on:
- node
networks:
- local
node:
build: ./Server/Node
ports:
- "3000:3000"
networks:
- local
networks:
local:
driver: bridge
Файл Docker для конфигурации Frontend
FROM nginx
COPY ./dist/Crypto-Trader /usr/share/nginx/html
EXPOSE 80
Dockerfile для Node Backend
FROM node
WORKDIR /src
COPY . /src
RUN npm install
EXPOSE 3000
CMD ["npm", "start"]
Я должен также упомянуть в моем проекте Angular У меня есть переменная окружения для строки подключения URL, настроенная так:
export const environment = {
production: true,
dockerIP: 'node'
};
So in my Angular services the connection string to the backend would look something like:
http://${dockerIP}:3000/someresource
Я попробовал несколько разных способов подключения к бэкенду, изменив dockerIP на:
0.0.0.0 или localhost , и ни один из них не сработал, поэтому Я не знаю, что делать сейчас.
В моем экземпляре ec2 я запустил разделитель контейнера Node y и смог получить доступ к данным, выполнив команду curl в командной строке:
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://0.0.0.0:3000/profiles/products-list
, но всякий раз, когда я запускаю два контейнера вместе, между ними возникает ошибка связи.
Поэтому я надеюсь, что предоставил достаточно информации, чтобы кто-нибудь мне помог, я не уверен, что еще я могу попробовать для связи двух контейнеров. Заранее спасибо всем, кто отвечает с ответом.