创建一个Docker容器以部署到产品环境

时间:2019-09-26 02:33:48

标签: node.js reactjs docker

通过Jenkins构建应用程序并在外部tomcat上运行容器时遇到一些问题。

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访问该容器,但是,每当我访问该端口时,都会发现找不到错误。我缺少步骤了吗?抱歉,我是Docker的新手。

2 个答案:

答案 0 :(得分:1)

您需要将机器上的端口映射到容器。为此使用p标志。

docker run reacttest -p 8080:8080

通常,语法为:

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

您可以在documentation

中阅读更多内容

答案 1 :(得分:0)

EXPOSE没有正确发布端口。您应该使用-p标志运行容器,以将端口从容器映射到主机系统。参见documents