通过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的新手。
答案 0 :(得分:1)
您需要将机器上的端口映射到容器。为此使用p标志。
docker run reacttest -p 8080:8080
通常,语法为:
docker run <image> -p <host port>:<container port>
您可以在documentation
中阅读更多内容答案 1 :(得分:0)
EXPOSE
没有正确发布端口。您应该使用-p
标志运行容器,以将端口从容器映射到主机系统。参见documents。