LINUX.ORG.RU

История изменений

Исправление fsb4000, (текущая версия) :

Не знаю как в docker-compose, но в обычном docker EXPOSE в Dockerfile просто показывает какие порты нужно открыть/слушать.

Нужно в запуске добавить -p 8080:8080

Вообщем по быстрому написал пример на nodejs и у меня всё работает.

Dockerfile

FROM ubuntu:18.04

RUN apt-get update && apt-get install -y npm

RUN mkdir server 

COPY hello.ts /server/hello.ts
COPY tsconfig.json /server/tsconfig.json
COPY package.json /server/package.json

RUN cd /server && npm i && npm run build

ENTRYPOINT ["npm", "start", "--prefix", "/server"]

EXPOSE 8080
Собираем образ
docker build -t node_hello .
Запускаем
docker run -d -p 8080:8080 node_hello

Ещё можешь проверить перенаправляет ли docker у тебя порты или нет. Напиши

docker ps
И посмотри на столбец PORTS

Если так, то всё хорошо

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                          PORTS                    NAMES
7d7e1d11597e        rest_hello          "npm start --prefix …"   4 seconds ago       Up 2 seconds                    0.0.0.0:8080->8080/tcp   thirsty_lichterman
А так не очень
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS               NAMES
6e8a128f77a7        rest_hello          "npm start --prefix …"   9 seconds ago       Up 6 seconds                   8080/tcp            suspicious_mahavira

Исходная версия fsb4000, :

Не знаю как в docker-compose, но в обычном docker EXPOSE в Dockerfile просто показывает какие порты нужно открыть/слушать.

Нужно в запуске добавить -p 8080:8080

Вообщем по быстрому написал пример на nodejs и у меня всё работает.

Dockerfile

FROM ubuntu:18.04

RUN apt-get update && apt-get install -y npm

RUN mkdir server 

COPY hello.ts /server/hello.ts
COPY tsconfig.json /server/tsconfig.json
COPY package.json /server/package.json

RUN cd /server && npm i && npm run build

ENTRYPOINT ["npm", "start", "--prefix", "/server"]

EXPOSE 8080
Собираем образ
docker build -t node_hello .
Запускаем
docker run -d -p 8080:8080 node_hello