MongoでDockerコンテナの中でノード・アプリをつくる方法
導入
これは、2010年のシリーズの第2部ですDocker meets NodeJS ここでは、我々はネットワークを介して我々のノードのアプリでそれに接続するMongoDB、データベースサービスを導入する予定です.
Note: Since we are introducing a new database service, by doing so this also makes our Node app also a service
Note: Ensure you go through the since it contains a huge part of how we created our Node app within a Docker container.
Note: Remember to clone the docker_nodejs_app
repo here
始める
回収する
シリーズの最初の部分では、次のようにしました.
Note: Since we are introducing a new database service, by doing so this also makes our Node app also a service
Note: Ensure you go through the since it contains a huge part of how we created our Node app within a Docker container.
Note: Remember to clone the docker_nodejs_app
repo here
回収する
シリーズの最初の部分では、次のようにしました.
ゴール
できるはずです.
サービスに関して
サービスは基本的にコンテナのグループであり、アプリケーションのスケールを簡単にします.
レッツコード
Mongoデータベースにノードを接続するには、新しい依存関係をインストールする必要があります
Mongoose
.$ npm install mongoose --save
我々のノードアプリを我々の我々の線のカップルを加えることによって存在しないデータベースに接続しましょうapp.js
ファイル.
// Connect to database
mongoose.connect("mongodb://mongo:27017/docker_nodejs_app", {
useNewUrlParser: true,
useCreateIndex: true
});
mongoose.connection.on("open", err => {
if (err) console.log(chalk.red("Error connecting to our mongo database"));
console.log(chalk.green("Connected to mongo database successfully"));
});
Note: If you have used mongoose and mongo before, your local or mlab connection URL might look like this
mongodb://localhost:27017/<your_db>
ormongodb://<dbuser>:<dbpassword>@ds115595.mlab.com:15595/<your_db>
respectively and notmongodb://mongo:27017
. This is because our mongo database service will be calledmongo
and since it exists in a docker container and not locally on your drive we will expose the port 27017 in its container.
あなた
app.js
ファイルは次のようになります
"use strict"; // Ensures our code is compiled in strict mode
// Lets import our web framework
var express = require("express");
var mongoose = require("mongoose");
// Initialise our app
const app = express();
// Lets set our port
/**
* The default port number is `3000`
* Take note on that as we will come to that.
*/
app.set("port", 3000);
// Connect to database
mongoose.connect("mongodb://mongo:27017/docker_nodejs_app", {
useNewUrlParser: true,
useCreateIndex: true
});
mongoose.connection.on("open", err => {
if (err) console.log("Error connecting to our mongo database");
console.log("Connected to mongo database successfully");
});
/**
* To ensure works as it should we will create a
* simple endpoint to return a json response
*/
// Define our json response
const data = {
blog_name: "docker_nodejs_app",
blog_author: "wachira (tesh254)",
blog_author_twitter: "@wachira_dev"
};
// Define out GET request endpoint
app.get("/", (req, res) => {
res.status(200).json(data);
});
// Initialize our server
app.listen(app.get("port"), () => {
console.log(`Server listening on port ${app.get("port")}`);
});
我々のノードのアプリを実行する場合は、エラーを取得する必要があります我々のMongoDBサービスをつくってください
いくつかのサービスを構築して実行するためには
docker-compose.yml
特定の設定を含むファイル.$ touch docker-compose.yml
入力するYAML
ファイル
# Defines our composer file version
version: "2.2"
# Define our services
services:
# This is our nodejs app built using the Dockerfile
app:
# The name of our node app container
container_name: docker_nodejs_app
# Restarts our node app whenever it fails
restart: always
# Builds the node app docker container from the local -
# Docker file we created
build: .
# Exposes the necessary ports that our node app uses
ports:
- "3000:3000"
# All the services our node app will link to -
# which in our case is only mongo
# You can other services such as a Redis
links:
# The name should be similar to the service you will build
- mongo
# Our database service called mongo
mongo:
# The name of the database container, NOTE: it is similar to the name provided
container_name: mongo
# Builds a mongo image from the docker repository
image: mongo
# Exposes the ports that Mongo uses
ports:
- "27017:27017"
To run our configurations we will use a
docker-compose
command...wait where did this come from? 😳
コマンド
docker-compose
Dockerソフトウェアが付属していますdocker-compose.yml
ファイル.ビルドし、我々のアプリケーションとmongoサービスを実行するには、あなたの端末でこれを入力してください
$ docker-compose up
次に起こることは少し長くなります.😇...フリータイム.たぶん自分でコーヒーを作る☕️ またはチェックアウト次はDocker :
何が次のビルド成功後?
あなたはカップルを作成することによってデータベースをテストすることができます
概要
要約すると、この投稿では次のようになります.
docker-compose
コマンド次
次の部分で
エクストラ
Reference
この問題について(MongoでDockerコンテナの中でノード・アプリをつくる方法), 我々は、より多くの情報をここで見つけました https://dev.to/wchr/how-to-create-a-node-app-within-a-docker-container-with-mongo-5886テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol