Создание Docker-контейнера для развертывания в prod env - PullRequest
0 голосов
/ 26 сентября 2019

У меня проблемы с созданием приложения через Jenkins и запуском контейнера на внешнем коте.

Dockerfile:

FROM node:10.16.3
RUN ls -al
WORKDIR /app
COPY /package/repo/package.json /app/package.json
RUN npm install
COPY /package/repo /app
RUN npm run build

EXPOSE 8080
CMD ["npm", "start]

npm стартовых вызовов node server.js

server.js:

const express = require('express');
const app = express();
const port = 8080;

app.get('/', (req, res) => {
  res.send('Hello World!');
});


app.listen(port, () => {
  console.log(`Example app listening on port ${port}!`);
  console.log(__dirname+'/client/build/index.html');

});

app.listen(port, () => console.log(`Example app listening on port ${port}!`));

docker build -t reacttest . docker run reacttest

Я пытаюсь получить доступ к контейнеру с помощью localhost: 8080, однако всякий раз, когда я получаю доступ к этому порту, яполучаю ошибку не найдена.Есть ли шаг, который я пропускаю.Извините, я очень новичок в докере.

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

Вам необходимо сопоставить порт вашей машины с контейнером.Для этого используйте флаг p.

docker run reacttest -p 8080:8080

Обычно синтаксис:

docker run <image> -p <host port>:<container port>

Более подробную информацию можно найти в документации

0 голосов
/ 26 сентября 2019

EXPOSE случайно не публикует порт.Вы должны запустить свой контейнер с флагом -p, чтобы отобразить порты из контейнера в вашу хост-систему.См. документы .

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