docker-compose rabbitmq сервисные порты перезаписывают мой узел экспресс порты - PullRequest
1 голос
/ 22 мая 2019

У меня есть файл docker-compose, например:

version: "3.7"

services:
  rabbitmq:
    image: "rabbitmq:latest"
    ports:
      - "15672:15672"
      - "5672:5672"
  hellosign-callback-listener:
    image: ${DOCKER_REGISTRY}blah/hellosign-callback-listener:${DOCKER_IMAGE_LABEL:-latest}
    init: true
    build:
      context: .
      dockerfile: ./debugging/Dockerfile
    ports:
      - "0.0.0.0:8080:8080"
    depends_on:
      - rabbitmq

И мой ./debugging/Dockerfile выглядит так:

FROM ubuntu:bionic

ENV NODE_ENV=debugging \
    PORT=8080

RUN useradd -ms /bin/bash --uid 999 hellosign

RUN apt-get update && apt-get -qq install \
  curl \
  git \
  gnupg2 \
  netcat

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

RUN curl -sL https://deb.nodesource.com/setup_11.x | bash
RUN apt-get -qq install nodejs
RUN npm install npm@latest -g

COPY package.json .
COPY package-lock.json .

RUN npm install

RUN npm install -g \
  Eficode/wait-for

EXPOSE 8080

COPY src/ .

USER hellosign

ENTRYPOINT [ "node", "server.js" ]

Однако, когда я запускаю приложение моего узла через docker-compose up hellosign-callback-listener , я обнаружил, что порт, который он пытается использовать, 5672 , а не 8080 .Я не понимаю, почему 5672 , кажется, перезаписывает process.env.PORT и как его остановить, чтобы он использовал 8080, на котором я хочу, чтобы сервер узла экспресс работал.

РЕДАКТИРОВАТЬ

Это вывод из docker-compose ps

WARNING: The DOCKER_REGISTRY variable is not set. Defaulting to a blank string.
                          Name                                         Command               State           Ports
---------------------------------------------------------------------------------------------------------------------------
hellosign-callback-listener_hellosign-callback-listener_1   /bin/sh -c /usr/lib/node_m ...   Up      0.0.0.0:8080->8080/tcp

Это вывод из docker-compose logs hellosign-callback-listener

WARNING: The DOCKER_REGISTRY variable is not set. Defaulting to a blank string.
Attaching to hellosign-callback-listener_hellosign-callback-listener_1
hellosign-callback-listener_1  | { AMQP_SEND_PASSWORD: 'guest',
hellosign-callback-listener_1  |   HOSTNAME: '2433ad7e8f4f',
hellosign-callback-listener_1  |   AMQP_SEND_HOST: 'rabbitmq',
hellosign-callback-listener_1  |   PORT: '5672',
hellosign-callback-listener_1  |   HOME: '/home/hellosign',
hellosign-callback-listener_1  |   AMQP_SEND_PORT: '5672',
hellosign-callback-listener_1  |   AMQP_SEND_LOGGING_TOPIC: 'topic',
hellosign-callback-listener_1  |   PATH:
hellosign-callback-listener_1  |    '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
hellosign-callback-listener_1  |   AMQP_SEND_USERNAME: 'guest',
hellosign-callback-listener_1  |   AMQP_SEND_LOGGING_EXCHANGE: 'firehose',
hellosign-callback-listener_1  |   APPLICATION_ID: '55122888670320',
hellosign-callback-listener_1  |   ORGANISATION_ID: '8632477670016',
hellosign-callback-listener_1  |   PWD: '/usr/src/app',
hellosign-callback-listener_1  |   NODE_ENV: 'debugging',
hellosign-callback-listener_1  |   WAIT_FOR: 'rabbitmq:5672' }

, по сути, я делаю console.log(process.env) в своем приложении узла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...