У меня есть трехуровневое приложение на Docker tat, которое состоит из следующего: 1. Приложение Adonis на сервере в качестве API для приложения 2. База данных MongoDB 3. Приложение NuxtJS для клиентского приложения.
Когда я запускаю приложение локально с docker-compose up
, кажется, что оно нормально запускается.Однако, когда я пытаюсь получить доступ к API с почтальоном (localhost: 3333) или пытаюсь получить доступ к следующему приложению в моем браузере (localhost: 3000 /), я получаю сообщение об ошибке «Не удалось получить ответ» и «Не удается открыть«ошибка страницы» соответственно.
Я попытался выставить порты в Dockerfile каждого компонента, в дополнение к указанию сопоставления портов в файле docker-compose.yml.
Вот мой Dockerfile для приложения API
# The API application
FROM node:alpine
WORKDIR home/api
COPY ./server-api/package.json .
RUN npm install
COPY ./server-api .
EXPOSE 3333
CMD ["npm", "start"]
Вот Dockerfile для приложения NuxtJS
# The Web application
FROM node:latest
WORKDIR home/app
COPY ./web-client/package.json .
RUN npm install
COPY ./web-client .
EXPOSE 3000
CMD ["npm", "start"]
Вот мой файл docker-compose.yml
version: '3'
services:
api:
build: ./server
restart: always
ports:
- "3333:3333"
mongodb:
image: 'mongo'
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: NoneOfYourBusiness
web:
build: ./web
restart: always
ports:
- "3000:3000"
Когда я отправляю запрос GET на "localhost: 3333 /", я ожидаю получить ответ "test".Однако вместо этого я получаю сообщение об ошибке «Не удалось получить ответ».
Когда я захожу в "localhost: 3000 /" в браузере, я ожидаю получить страницу.Вместо этого он говорит, что не может подключиться к серверу.