![](/img/trans.png)
[英]I can't access http://localhost:8080 when I run docker-compose up With MongoDB and NestJs
[英]I can't insert values into mongodb using docker compose
我正在創建一個 Docker 文件。
FROM node:12
WORKDIR /home/node/
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8888
CMD [ "node", "server.js" ]
之后,創建一個 dockercompose.yml 文件。
version: '2'
services:
api:
container_name: api_node
restart: always
build:
dockerfile: ./Dockerfile
context: .
volumes:
- .:/home/node
- /home/node/node_modules
ports:
- 3000:3000
command: node server.js
mongo:
container_name: mongo
image: mongo
volumes:
- ./volumes/db:/data/db
ports:
- "27017:27017"
運行 docker-compose 時,docker 創建容器,但我無法在 mongodb 中保存模式。 出現錯誤:
MongooseError:操作
users.insertOne()
緩沖在 10000 毫秒后超時在超時。 (/home/node/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:184:20)
在 listOnTimeout (internal/timers.js:554:17)
在 processTimers (internal/timers.js:497:7)
我的 server.js
// Constants
const PORT = 3000;
const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const app = express();
app.use(express.static("public"));
app.use(bodyParser.json());
mongoose.connect = ("mongodb://mongo:27017/userDB", { useNewUrlParser: true, useUnifiedTopology: true });
const userSchema = {
username: String,
email: String
};
const User = new mongoose.model("User", userSchema);
app.get("/", function (req, res) {
res.render("home")
});
app.get("/register", function (req, res) {
console.log('deu certo');
});
app.post("/register", function (req, res) {
console.dir(req.body);
const newUser = new User({
username: req.body.username,
email: req.body.email
});
console.log(newUser);
newUser.save(function (err) {
if (err) {
console.log(err);
} else {
console.log('Deu certo');
}
});
});
app.listen(PORT, function () {
console.log(`Running on http://localhost:${PORT}`);
});
我已經進行了一些更改,但我仍然不知道發生了什么。
您可以嘗試在docker-compose.yml
中定義一個network
,以便服務在同一個網絡中並且可以相互訪問:
version: '2'
services:
api:
container_name: api_node
restart: always
build:
dockerfile: ./Dockerfile
context: .
volumes:
- .:/home/node
- /home/node/node_modules
ports:
- 3000:3000
command: node server.js
networks:
- my-net
mongo:
container_name: mongo
image: mongo
volumes:
- ./volumes/db:/data/db
ports:
- "27017:27017"
networks:
- my-net
networks:
my-net:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.