Docker-compose зависает при подключении к

У меня проблема при запуске docker-compose up. Он зависает при подключении, и я не могу получить доступ к своему веб-приложению на localhost:4200.

docker-compose.yml:

version: '2' # specify docker-compose version

# Define the services/containers to be run
services:
  angular: # name of the first service
    build:
      context: . 
      dockerfile: ./.docker/scs.dockerfile  # specify the directory of the Dockerfile
    container_name: secure-cloud-storage-build-dev
    image: secure-cloud-storage
    ports:
      - "4200:4200" # specify port forwarding

dockerfile:

# Stage 0, based on Node.js, to build and compile Angular
FROM node:8.6 as node
WORKDIR /app
COPY package.json /app/
RUN npm install
COPY ./ /app/
ARG env=prod
RUN npm run build -- --prod --environment $env

# Stage 1, based on Nginx, to have only the compiled app, ready for production with Nginx
FROM nginx:1.13
COPY --from=node /app/dist/ /usr/share/nginx/html
COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf

nginx-custom.conf:

server {
  listen 80;
  location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    try_files $uri $uri/ /index.html =404;
  }
}

Вот подробный вывод:

docker-compose --verbose up вывод

Есть подсказки, что может пойти не так? Я новичок в мире Docker, в основном занимаюсь учебными пособиями, так что может быть что-то очевидное, что я пропустил. Мой localhost:4200 возвращает ERR_EMPTY_RESPONSE.

сначала создайте образы, а затем составьте их вместо использования build.

Jinna Balu 01.05.2018 20:38

Ваш docker-compose.yaml указывает, что ваше приложение в контейнере работает на порту 4200, но ваш nginx-custom.conf прослушивает порт 80. Эти порты должны совпадать.

adebasi 01.05.2018 20:44
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
18
2
19 256
4

Ответы 4

В моем случае докер тоже зависает, показывая сообщение «Присоединяется к ...», но приложение работает. Так что, похоже, это проблема с отображением, которую вы можете игнорировать.

Вы можете запустить докер в автономном режиме docker-compose up -d angular, чтобы подавить это сообщение. До сих пор я не понимал, как запустить его в режиме переднего плана, не получив сообщения.

Ваши файлы конфигурации в целом выглядят нормально, но вы должны настроить правильные порты, т.е. nginx также должен прослушивать порт 4200.

Я знаю, что опаздываю на вечеринку, но этого следовало ожидать. docker-compose up, как и docker run, требует флаг -d, если вы хотите вернуть свою командную строку.

Вот как будет выглядеть команда: docker-compose up -d

Что касается того, почему ваше приложение возвращает пустой ответ, я не уверен.

Надеюсь, это поможет другим перейти к этой теме!

Попробуйте запустить эту команду в другом терминале:

docker exec -it ${CONTAINERNAME} echo "Kick it" 

Это по какой-то причине помогло мне с зависанием приложения docker-compose к материалам. Похоже, что STDOUT по какой-то причине зависает, и это еще больше увеличивает его ... Странно, но он зависает только при использовании docker-compose ... Запуск каждой службы по отдельности работает как шарм ...

Убедитесь, что названия сервисов уникальны

Я копировал / вставлял и в итоге получил две службы с одинаковым именем

services: 
  node_server:
    ...

  node_server: # Duplicate service!
    ...

Это может привести к зависанию docker compose на Attaching to.

Другие вопросы по теме