У меня есть файл 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)
в своем приложении узла.