我试图在Docker容器中设置API,并且每当我发送HTTP POST请求时,它都会失败并显示404错误。有趣的是,当我使用nodemon运行API时,它工作得很好。
我正在使用命令docker run -p 8080:8080 IMAGE
来运行API。
这是发布请求和控制者的路线。
router.post('/', linux_aps_controller.linux_aps_send_log);
exports.linux_aps_send_log = (req, res, next) => {
const log_to_send = new Linux_APS({
_id: new mongoose.Types.ObjectId(),
device_id: req.body.device_id
});
log_to_send
.save()
.then(result => {
console.log(result),
res.status(201).json({
message: 'Created new Linux APS log successfully',
createdLog: {
_id: result._id,
device_id: result.device_id,
request: {
type: 'GET',
url: process.env.LINUX_ENDPOINT + result._id
}
}
});
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
}
答案 0 :(得分:0)
如果没有看到 dockerfile 本身(以及您的其余代码,它是 node/express 吗?),很难判断这里出了什么问题。
尝试使用不同的基础映像,例如 node:12.17,请参阅以下示例:
FROM node:12.17.0
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 8080
CMD ["node", "app.js"]