項目地址html
目錄結構以下:node
其中app.js以下:git
// app.js const express = require('express') var mongoose = require('mongoose'); const app = express() mongoose.connect('mongodb://mongodb/test'); var kittySchema = mongoose.Schema({ name: String }); kittySchema.methods.speak = function () { var greeting = this.name ? "Meow name is " + this.name : "I don't have a name"; console.log(greeting); } var Kitten = mongoose.model('Kitten', kittySchema); app.get('/create', (req, res) => { var fluffy = new Kitten({ name: 'fluffy' }); fluffy.save(function (err, fluffy) { if (err) return console.error(err); fluffy.speak(); }); res.send(fluffy.speak()) }) app.get('/', (req, res) => { Kitten.find(function (err, kittens) { if (err) return console.error(err); res.send(kittens) }) // res.send('hello aa') }) app.listen(3000, console.log('Example app listening on port 3000!'))
FROM node:latest RUN mkdir -p /home/project WORKDIR /home/project RUN chmod -R 777 /home/project COPY . /home/project RUN npm install EXPOSE 3000 ENTRYPOINT ["npm", "run"] CMD ["start"]
請參考 https://www.runoob.com/docker/macos-docker-install.htmlgithub
在項目根目錄下mongodb
docker build -t node .
docker pull mongo
docker run -p 27017:27017 -v $PWD/db:/data/db -d --name mongodb mongo:latest
docker run -d --name nodeapp --link=mongodb:mongodb -p 3000:3000 node
注意:docker