{"id":1631,"date":"2012-02-09T17:30:28","date_gmt":"2012-02-09T08:30:28","guid":{"rendered":"http:\/\/www.creationline.com\/?p=1631"},"modified":"2023-08-29T10:31:50","modified_gmt":"2023-08-29T01:31:50","slug":"cloud-foundry%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%864","status":"publish","type":"post","link":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/1631","title":{"rendered":"Cloud Foundry\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046[4]"},"content":{"rendered":"<h2>node.js\u3068MongoDB\u306e\u9023\u643a<\/h2>\n<p><a href=\"http:\/\/nodejs.org\/\">node.js<\/a>\u306f\u3001\u300c\u30b5\u30fc\u30d0\u30b5\u30a4\u30c9JavaScript\u300d\u3068\u5f62\u5bb9\u3055\u308c\u308b\u3053\u3068\u304c\u591a\u3044\u3067\u3059\u304c\u3001\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306a\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u305f\u3081\u306eJavaScript\u3067\u4f5c\u6210\u3055\u308c\u305f\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u3059\u3002\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u306e\u975e\u540c\u671fI\/O\u30e2\u30c7\u30eb\u3092\u7528\u3044\u3066\u3044\u307e\u3059\u3002<\/p>\n<p><a href=\"http:\/\/www.mongodb.org\/\">MongoDB<\/a>\u306f\u3001NoSQL (Not only SQL)\u306e\u4e00\u7a2e\u3067\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u6307\u5411\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u3059\u3002<a href=\"http:\/\/bsonspec.org\/\">BSON<\/a> (Binary JSON)\u3068\u3044\u3046JSON (JavaScript Object Notation) \u3092\u30d0\u30a4\u30ca\u30ea\u5316\u3057\u305f\u3057\u305f\u3088\u3046\u306a\u5f62\u5f0f\u3067\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u8868\u73fe\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u672c\u9805\u3067\u306f\u3001<a href=\"http:\/\/start.cloudfoundry.com\/services\/mongodb\/nodejs-mongodb.html\">Using MongoDB with Node.js<\/a>\u3092\u53c2\u8003\u306b\u3001MongoDB\u306b\u63a5\u7d9a\u3059\u308bnode.js\u3067\u4f5c\u6210\u3055\u308c\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u3001Cloud Foundry\u4e0a\u306b\u30c7\u30d7\u30ed\u30a4\u3057\u307e\u3059\u3002<\/p>\n<h3>MongoDB\u3068node.js\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h3>\n<p>MongoDB \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3068\u30b5\u30fc\u30d0\u3092\u30ed\u30fc\u30ab\u30eb\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<pre>root@debian:~# aptitude install mongodb\n\t:\nSetting up libpcre3 (8.02-1.1) ...\nSetting up libboost-system1.42.0 (1.42.0-4) ...\nSetting up libboost-filesystem1.42.0 (1.42.0-4) ...\nSetting up libboost-program-options1.42.0 (1.42.0-4) ...\nSetting up libboost-thread1.42.0 (1.42.0-4) ...\nSetting up libnspr4-0d (4.8.6-1) ...\nSetting up libmozjs2d (1.9.1.16-11) ...\nSetting up libpcrecpp0 (8.02-1.1) ...\nSetting up mongodb-clients (1:1.4.4-3) ...\nSetting up mongodb-server (1:1.4.4-3) ...\nAdding system user `mongodb' (UID 102) ...\nAdding new user `mongodb' (UID 102) with group `nogroup' ...\nNot creating home directory `\/home\/mongodb'.\nAdding group `mongodb' (GID 104) ...\nDone.\nAdding user `mongodb' to group `mongodb' ...\nAdding user mongodb to group mongodb\nDone.\nStarting database: mongodb.\nSetting up mongodb-dev (1:1.4.4-3) ...\nSetting up mongodb (1:1.4.4-3) ...\n\nroot@debian:~#<\/pre>\n<p>MongoDB\u30b5\u30fc\u30d0\u304c\u8d77\u52d5\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~$ ps auxwwwf | grep \"[ m]ongodb\"\nmongodb   6566  0.0  0.8  80176  4260 ?        Sl   21:04   0:00 \/usr\/bin\/mongod --dbpath \/var\/lib\/mongodb --logpath \/var\/log\/mongodb\/mongodb.log --config \/etc\/mongodb.conf run\ncf@debian:~$<\/pre>\n<p>MongoDB\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~$ mongo --version\nMongoDB shell version: 1.4.4\ncf@debian:~$<\/pre>\n<p>node.js\u3092\u30ed\u30fc\u30ab\u30eb\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<pre>root@debian:~# aptitude install nodejs\n\t:\nSetting up libssl1.0.0 (1.0.0f-1) ...\nSetting up libicu48 (4.8.1.1-2) ...\nSetting up libv8-3.6.6.14 (3.6.6.14-2) ...\nSetting up libc-ares2 (1.7.3-1) ...\nSetting up libev4 (1:4.04-1) ...\nSetting up nodejs (0.4.12-3) ...\nupdate-alternatives: using \/usr\/bin\/node to provide \/usr\/bin\/js (js) in auto mode.\n\nroot@debian:~#<\/pre>\n<p>node.js\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~$ node -v\nv0.4.12\ncf@debian:~$<\/pre>\n<p>node.js\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u3067\u3042\u308bnpm\u3092\u30ed\u30fc\u30ab\u30eb\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<pre>root@debian:~# aptitude install npm\n\t:\nSetting up mime-support (3.48-1) ...\nSetting up python2.6-minimal (2.6.6-8+b1) ...\nLinking and byte-compiling packages for runtime python2.6...\nSetting up python2.6 (2.6.6-8+b1) ...\nSetting up python-minimal (2.6.6-3+squeeze6) ...\nSetting up python (2.6.6-3+squeeze6) ...\nSetting up binutils (2.20.1-16) ...\nSetting up libgmp3c2 (2:4.3.2+dfsg-1) ...\nSetting up libmpfr4 (3.0.0-2) ...\nSetting up cpp-4.4 (4.4.5-8) ...\nSetting up cpp (4:4.4.5-1) ...\nSetting up libgomp1 (4.4.5-8) ...\nSetting up gcc-4.4 (4.4.5-8) ...\nSetting up gcc (4:4.4.5-1) ...\nSetting up libc-dev-bin (2.11.2-10) ...\nSetting up linux-libc-dev (2.6.32-39squeeze1) ...\nSetting up libc6-dev (2.11.2-10) ...\nSetting up zlib1g-dev (1:1.2.3.4.dfsg-3) ...\nSetting up libssl-dev (0.9.8o-4squeeze5) ...\nSetting up libv8-dev (3.6.6.14-2) ...\nSetting up manpages-dev (3.27-1) ...\nSetting up libc-ares-dev (1.7.3-1) ...\nSetting up libev3 (1:3.9-1) ...\nSetting up libev-dev (1:3.9-1) ...\nSetting up nodejs-dev (0.4.12-3) ...\nSetting up npm (0.2.19-1) ...\n\nroot@debian:~#<\/pre>\n<p>npm\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~$ npm -v\n0.2.19\ncf@debian:~$<\/pre>\n<h3>MongoDB\u3092\u5229\u7528\u3057\u306a\u3044node.js\u306e\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u4f5c\u6210<\/h3>\n<p>\u307e\u305a\u3001MongoDB\u3092\u5229\u7528\u3057\u306a\u3044\u3001node.js\u306e\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~$ mkdir mongo-node\ncf@debian:~$ cd mongo-node\ncf@debian:~\/mongo-node$ \n\ncf@debian:~\/mongo-node$ cat &gt; app.js\nvar port = (process.env.VMC_APP_PORT || 3000);\nvar host = (process.env.VCAP_APP_HOST || 'localhost');\nvar http = require('http');\n\nhttp.createServer(function (req, res) {\n  res.writeHead(200, {'Content-Type': 'text\/plain'});\n  res.end('Hello World\\n');\n}).listen(port, host);\ncf@debian:~\/mongo-node$<\/pre>\n<p>\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30ed\u30fc\u30ab\u30eb\u3067\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ node app.js<\/pre>\n<p>\u5225\u30b7\u30a7\u30eb\u304b\u3089telnet\u30b3\u30de\u30f3\u30c9\u3067\u63a5\u7d9a\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~$ telnet localhost 3000\nTrying 127.0.0.1...\nConnected to localhost.\nEscape character is '^]'.\nGET \/ HTTP\/1.0\n\nHTTP\/1.1 200 OK\nContent-Type: text\/plain\nConnection: close\n\nHello World\nConnection closed by foreign host.\ncf@debian:~$<\/pre>\n<p>\u4ee5\u4e0a\u306e\u3088\u3046\u306b\u3001\u554f\u984c\u306a\u304f\u52d5\u4f5c\u3059\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>\u3053\u306e\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092Cloud Foundry\u306b\u30c7\u30d7\u30ed\u30a4\u3057\u307e\u3059\u3002\u3053\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306fMongoDB\u3092\u5229\u7528\u3057\u3066\u3044\u307e\u305b\u3093\u304c\u3001\u73fe\u6642\u70b9\u3067MongoDB\u3068\u306e\u95a2\u9023\u4ed8\u3051\u3092\u884c\u3063\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ vmc push\nWould you like to deploy from the current directory? [Yn]: <strong>y<\/strong>\nApplication Name: <strong>mongo-node<\/strong>\nApplication Deployed URL [mongo-node.cloudfoundry.com]: <strong>mongo-node-creationline.cloudfoundry.com<\/strong>\nDetected a Node.js Application, is this correct? [Yn]: <strong>y<\/strong>\nMemory Reservation (64M, 128M, 256M, 512M, 1G, 2G) [64M]:\nCreating Application: OK\nWould you like to bind any services to 'mongo-node'? [yN]: <strong>y<\/strong>\nThe following system services are available\n1: mongodb\n2: mysql\n3: postgresql\n4: rabbitmq\n5: redis\nPlease select one you wish to provision: <strong>1<\/strong>\nSpecify the name of the service [mongodb-94ec6]:\nCreating Service: OK\nBinding Service [mongodb-94ec6]: OK\nUploading Application:\n  Checking for available resources: OK\n  Packing application: OK\n  Uploading (0K): OK\nPush Status: OK\nStaging Application: OK\nStarting Application: OK                                                        \n\ncf@debian:~\/mongo-node$<\/pre>\n<p>\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304cMongoDB\u3068\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ vmc apps\n\n+-------------+----+---------+------------------------------------------+---------------+\n| Application | #  | Health  | URLS                                     | Services      |\n+-------------+----+---------+------------------------------------------+---------------+\n| mongo-node  | 1  | RUNNING | mongo-node-creationline.cloudfoundry.com | mongodb-94ec6 |\n+-------------+----+---------+------------------------------------------+---------------+\n\ncf@debian:~\/mongo-node$<\/pre>\n<p>Web\u30d6\u30e9\u30a6\u30b6\u3067 http:\/\/mongo-node-creationline.cloudfoundry.com\/ \u306b\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u8868\u793a\u304c\u5f97\u3089\u308c\u308c\u3070\u3001\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u6b63\u5e38\u306b\u52d5\u4f5c\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre>Hello World<\/pre>\n<h3>MongoDB\u3092\u5229\u7528\u3059\u308bnode.js\u306e\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u4f5c\u6210<\/h3>\n<p>\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5148\u982d\u306b\u3001MongoDB\u30b5\u30fc\u30d3\u30b9\u3068\u63a5\u7d9a\u3059\u308b\u305f\u3081\u306e\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002\u63a5\u7d9a\u3059\u308b\u3060\u3051\u3067\u3001\u5b9f\u969b\u306bMongoDB\u306b\u5bfe\u3057\u3066\u306f\u4f55\u306e\u64cd\u4f5c\u3082\u884c\u3044\u307e\u305b\u3093\u3002<\/p>\n<p>Cloud Foundry\u4e0a\u3067\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068\u30b5\u30fc\u30d3\u30b9\u3092\u63a5\u7d9a\u3059\u308b\u305f\u3081\u306e\u60c5\u5831\u306f\u74b0\u5883\u5909\u6570 VCAP_SERVICES\u3001VMC_APP_PORT\u3001VCAP_APP_HOST \u306b\u683c\u7d0d\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u304a\u308a\u3001\u305d\u306e\u6709\u7121\u3092\u5224\u5b9a\u3057\u3066Cloud Foundry\u4e0a\u3068\u30ed\u30fc\u30ab\u30eb\u306e\u3069\u3061\u3089\u3067\u3082\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u9006\u306b\u8a00\u3046\u3068\u3001Cloud Foundry\u4e0a\u3067\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u52d5\u304b\u3059\u306b\u306f\u3001\u63a5\u7d9a\u60c5\u5831\u306b\u95a2\u3059\u308b\u90e8\u5206\u3092\u4fee\u6b63\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ cat &gt; app.js\n<strong>if(process.env.VCAP_SERVICES){\n  var env = JSON.parse(process.env.VCAP_SERVICES);\n  var mongo = env['mongodb-1.8'][0]['credentials'];\n}\nelse{\n  var mongo = {\n    \"hostname\":\"localhost\",\n    \"port\":27017,\n    \"username\":\"\",\n    \"password\":\"\",\n    \"name\":\"\",\n    \"db\":\"db\"\n  }\n}\n\nvar generate_mongo_url = function(obj){\n  obj.hostname = (obj.hostname || 'localhost');\n  obj.port = (obj.port || 27017);\n  obj.db = (obj.db || 'test');\n\n  if(obj.username &amp;&amp; obj.password){\n    return \"mongodb:\/\/\" + obj.username + \":\" + obj.password + \"@\" + obj.hostname + \":\" + obj.port + \"\/\" + obj.db;\n  }\n  else{\n    return \"mongodb:\/\/\" + obj.hostname + \":\" + obj.port + \"\/\" + obj.db;\n  }\n}\n\nvar mongourl = generate_mongo_url(mongo);<\/strong>\n\n\/\/--------------------------------------\n\nvar port = (process.env.VMC_APP_PORT || 3000);\nvar host = (process.env.VCAP_APP_HOST || 'localhost');\nvar http = require('http');\n\nhttp.createServer(function (req, res) {\n  res.writeHead(200, {'Content-Type': 'text\/plain'});\n  res.end('Hello World\\n');\n}).listen(port, host);\ncf@debian:~\/mongo-node$<\/pre>\n<p>\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30ed\u30fc\u30ab\u30eb\u3067\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ node app.js<\/pre>\n<p>\u5225\u30b7\u30a7\u30eb\u304b\u3089telnet\u30b3\u30de\u30f3\u30c9\u3067\u63a5\u7d9a\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~$ telnet localhost 3000\nTrying 127.0.0.1...\nConnected to localhost.\nEscape character is '^]'.\nGET \/ HTTP\/1.0\n\nHTTP\/1.1 200 OK\nContent-Type: text\/plain\nConnection: close\n\nHello World\nConnection closed by foreign host.\ncf@debian:~$<\/pre>\n<p>\u4ee5\u4e0a\u306e\u3088\u3046\u306b\u3001\u554f\u984c\u306a\u304f\u52d5\u4f5c\u3059\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u305f\u3089\u3001Cloud Foundry\u4e0a\u306e\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u66f4\u65b0\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ vmc update mongo-node\nUploading Application:\n  Checking for available resources: OK\n  Packing application: OK\n  Uploading (1K): OK\nPush Status: OK\nStopping Application: OK\nStaging Application: OK\nStarting Application: OK                                                        \n\ncf@debian:~\/mongo-node$<\/pre>\n<p>Web\u30d6\u30e9\u30a6\u30b6\u3067 http:\/\/mongo-node-creationline.cloudfoundry.com\/ \u306b\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u8868\u793a\u304c\u5f97\u3089\u308c\u308c\u3070\u3001\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u6b63\u5e38\u306b\u52d5\u4f5c\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre>Hello World<\/pre>\n<p>\u3067\u306f\u3001\u5b9f\u969b\u306bnode.js\u304b\u3089MongoDB\u30b5\u30fc\u30d3\u30b9\u3092\u5229\u7528\u3057\u3066\u307f\u307e\u3059\u3002\u307e\u305a\u3001npm\u30b3\u30de\u30f3\u30c9\u3067node.js\u306eMongoDB\u30c9\u30e9\u30a4\u30d0\u3092\u30ed\u30fc\u30ab\u30eb\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ npm install mongodb\n================================================================================\n=                                                                              =\n=  To install with C++ bson parser do    =\n=                                                                              =\n================================================================================\nnpm ok\ncf@debian:~\/mongo-node$<\/pre>\n<p>C++ \u30b3\u30f3\u30d1\u30a4\u30e9\u306a\u3069\u958b\u767a\u74b0\u5883\u304c\u5fc5\u8981\u3068\u306a\u308b\u306e\u3067\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<pre>root@debian:~# aptitude install build-essential\n\t:\nSetting up libdb4.7 (4.7.25-9) ...\nSetting up patch (2.6-2) ...\nSetting up make (3.81-8) ...\nSetting up fakeroot (1.14.4-1) ...\nupdate-alternatives: using \/usr\/bin\/fakeroot-sysv to provide \/usr\/bin\/fakeroot (fakeroot) in auto mode.\nSetting up perl-modules (5.10.1-17squeeze2) ...\nSetting up libstdc++6-4.4-dev (4.4.5-8) ...\nSetting up perl (5.10.1-17squeeze2) ...\nupdate-alternatives: using \/usr\/bin\/prename to provide \/usr\/bin\/rename (rename) in auto mode.\nSetting up g++-4.4 (4.4.5-8) ...\nSetting up g++ (4:4.4.5-1) ...\nupdate-alternatives: using \/usr\/bin\/g++ to provide \/usr\/bin\/c++ (c++) in auto mode.\nSetting up libtimedate-perl (1.2000-1) ...\nSetting up libdpkg-perl (1.15.8.11) ...\nSetting up dpkg-dev (1.15.8.11) ...\nSetting up build-essential (11.5) ...\nSetting up libalgorithm-diff-perl (1.19.02-2) ...\nSetting up libalgorithm-diff-xs-perl (0.04-1) ...\nSetting up libalgorithm-merge-perl (0.08-2) ...\n\nroot@debian:~#<\/pre>\n<p>\u518d\u5ea6\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u884c\u3044\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ npm install mongodb --mongodb:native\n================================================================================\n=                                                                              =\n=  To install with C++ bson parser do    =\n=                                                                              =\n================================================================================\nmake -C .\/external-libs\/bson all\nmake[1]: Entering directory `\/home\/cf\/.node_libraries\/.npm\/mongodb\/0.9.7-3-5\/package\/external-libs\/bson'\nrm -rf build .lock-wscript bson.node\nnode-waf configure build\nChecking for program g++ or c++          : \/usr\/bin\/g++\nChecking for program cpp                 : \/usr\/bin\/cpp\nChecking for program ar                  : \/usr\/bin\/ar\nChecking for program ranlib              : \/usr\/bin\/ranlib\nChecking for g++                         : ok\nChecking for node path                   : ok \/home\/cf\/.node_libraries\nChecking for node prefix                 : ok \/usr\n'configure' finished successfully (0.152s)\nWaf: Entering directory `\/home\/cf\/.node_libraries\/.npm\/mongodb\/0.9.7-3-5\/package\/external-libs\/bson\/build'\n[1\/2] cxx: bson.cc -&gt; build\/default\/bson_1.o\n[2\/2] cxx_link: build\/default\/bson_1.o -&gt; build\/default\/bson.node\nWaf: Leaving directory `\/home\/cf\/.node_libraries\/.npm\/mongodb\/0.9.7-3-5\/package\/external-libs\/bson\/build'\n'build' finished successfully (2.313s)\ncp -R .\/build\/Release\/bson.node . || true\ncp: cannot stat `.\/build\/Release\/bson.node': No such file or directory\n# @node --expose-gc test\/test_bson.js\n# @node --expose-gc test\/test_full_bson.js\n# @node --expose-gc test\/test_stackless_bson.js\n# @node --expose-gc test\/test_shared_objects.js\nmake[1]: Leaving directory `\/home\/cf\/.node_libraries\/.npm\/mongodb\/0.9.7-3-5\/package\/external-libs\/bson'\nchild process exited with code 0\nnpm ok\ncf@debian:~\/mongo-node$<\/pre>\n<p>MongoDB\u30c9\u30e9\u30a4\u30d0\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u305f\u3089\u3001\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u3055\u3089\u306b\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ cat &gt; app.js\nif(process.env.VCAP_SERVICES){\n  var env = JSON.parse(process.env.VCAP_SERVICES);\n  var mongo = env['mongodb-1.8'][0]['credentials'];\n}\nelse{\n  var mongo = {\n    \"hostname\":\"localhost\",\n    \"port\":27017,\n    \"username\":\"\",\n    \"password\":\"\",\n    \"name\":\"\",\n    \"db\":\"db\"\n  }\n}\n\nvar generate_mongo_url = function(obj){\n  obj.hostname = (obj.hostname || 'localhost');\n  obj.port = (obj.port || 27017);\n  obj.db = (obj.db || 'test');\n\n  if(obj.username &amp;&amp; obj.password){\n    return \"mongodb:\/\/\" + obj.username + \":\" + obj.password + \"@\" + obj.hostname + \":\" + obj.port + \"\/\" + obj.db;\n  }\n  else{\n    return \"mongodb:\/\/\" + obj.hostname + \":\" + obj.port + \"\/\" + obj.db;\n  }\n}\n\nvar mongourl = generate_mongo_url(mongo);\n\n\/\/--------------------------------------\n\n<strong>var record_visit = function(req, res){\n  \/* Connect to the DB and auth *\/\n  require('mongodb').connect(mongourl, function(err, conn){\n    conn.collection('ips', function(err, coll){\n      \/* Simple object to insert: ip address and date *\/\n      object_to_insert = { 'ip': req.connection.remoteAddress, 'ts': new Date() };\n\n      \/* Insert the object then print in response *\/\n      \/* Note the _id has been created *\/\n      coll.insert( object_to_insert, {safe:true}, function(err){\n        res.writeHead(200, {'Content-Type': 'text\/plain'});\n        res.write(JSON.stringify(object_to_insert));\n        res.end('\\n');\n      });\n    });\n  });\n}<\/strong>\n\n\/\/--------------------------------------\n\nvar port = (process.env.VMC_APP_PORT || 3000);\nvar host = (process.env.VCAP_APP_HOST || 'localhost');\nvar http = require('http');\n\nhttp.createServer(function (req, res) {\n  record_visit(req, res);\n}).listen(port, host);\ncf@debian:~\/mongo-node$<\/pre>\n<p>\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30ed\u30fc\u30ab\u30eb\u3067\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ node app.js<\/pre>\n<p>\u5225\u30b7\u30a7\u30eb\u304b\u3089telnet\u30b3\u30de\u30f3\u30c9\u3067\u63a5\u7d9a\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~$ telnet localhost 3000\nTrying 127.0.0.1...\nConnected to localhost.\nEscape character is '^]'.\nGET \/ HTTP\/1.0\n\nHTTP\/1.1 200 OK\nContent-Type: text\/plain\nConnection: close\n\n{\"ip\":\"127.0.0.1\",\"ts\":\"2012-01-16T12:56:57.226Z\",\"_id\":\"4f141e99e3b2f2d420000001\"}\nConnection closed by foreign host.\ncf@debian:~$<\/pre>\n<p>\u4ee5\u4e0a\u306e\u3088\u3046\u306b\u3001MongoDB\u30b5\u30fc\u30d0\u306b\u6295\u5165\u3055\u308c\u305f\u30c7\u30fc\u30bf\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002MongoDB\u30b5\u30fc\u30d0\u306e\u30ed\u30b0\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~$ tail \/var\/log\/mongodb\/mongodb.log\nMon Jan 16 21:56:57 allocating new datafile \/var\/lib\/mongodb\/db.ns, filling with zeroes...\nMon Jan 16 21:56:57 done allocating datafile \/var\/lib\/mongodb\/db.ns, size: 16MB, took 0.011 secs\nMon Jan 16 21:56:57 allocating new datafile \/var\/lib\/mongodb\/db.0, filling with zeroes...\nMon Jan 16 21:56:57 done allocating datafile \/var\/lib\/mongodb\/db.0, size: 64MB, took 0.094 secs\nMon Jan 16 21:56:57 building new index on { _id: 1 } for db.ips\nMon Jan 16 21:56:57 Buildindex db.ips idxNo:0 { name: \"_id_\", ns: \"db.ips\", key: { _id: 1 } }\nMon Jan 16 21:56:57 done for 0 records 0secs\nMon Jan 16 21:56:57 insert db.ips 136ms\nMon Jan 16 21:56:57 allocating new datafile \/var\/lib\/mongodb\/db.1, filling with zeroes...\nMon Jan 16 21:57:03 done allocating datafile \/var\/lib\/mongodb\/db.1, size: 128MB, took 6.154 secs\ncf@debian:~$<\/pre>\n<p>MongoDB\u306b\u65b0\u3057\u3044DB\u304c\u4f5c\u6210\u3055\u308c\u305f\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>Cloud Foundry\u4e0a\u306e\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u66f4\u65b0\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ vmc update mongo-node\nUploading Application:\n  Checking for available resources: OK\n  Packing application: OK\n  Uploading (1K): OK\nPush Status: OK\nStopping Application: OK\nStaging Application: OK\nStarting Application: OK                                                        \n\ncf@debian:~\/mongo-node$<\/pre>\n<p>Web\u30d6\u30e9\u30a6\u30b6\u3067 http:\/\/mongo-node-creationline.cloudfoundry.com\/ \u306b\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002<\/p>\n<pre>502 Bad Gateway<\/pre>\n<p>\u3057\u304b\u3057\u3001\u4ee5\u4e0a\u306e\u3088\u3046\u306b\u30a8\u30e9\u30fc\u3068\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\u3002\u30ed\u30b0\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ vmc crashlogs mongo-node\n====&gt; logs\/stderr.log &lt;====\n\nmodule.js:326\n    throw new Error(\"Cannot find module '\" + request + \"'\");\n          ^\nError: Cannot find module 'mongodb'\n    at Function._resolveFilename (module.js:326:11)\n    at Function._load (module.js:271:25)\n    at require (module.js:355:19)\n    at \/var\/vcap\/data\/dea\/apps\/mongo-node-0-e096b2ff2028e697bc888f5f1274295b\/app\/app.js:35:3\n    at Server.&lt;anonymous&gt; (\/var\/vcap\/data\/dea\/apps\/mongo-node-0-e096b2ff2028e697bc888f5f1274295b\/app\/app.js:58:2)\n    at Server.emit (events.js:67:17)\n    at HTTPParser.onIncoming (http.js:1134:12)\n    at HTTPParser.onHeadersComplete (http.js:108:31)\n    at Socket.ondata (http.js:1029:22)\n    at Socket._onReadable (net.js:677:27)\n\ncf@debian:~\/mongo-node$<\/pre>\n<p>Cloud Foundry\u4e0a\u306b\u306fnode.js\u306eMongoDB\u30c9\u30e9\u30a4\u30d0\u304c\u306a\u3044\u3088\u3046\u3067\u3059\u3002<\/p>\n<p>Cloud Foundry\u306e\u30ca\u30ec\u30c3\u30b8\u30d9\u30fc\u30b9 <a href=\"http:\/\/support.cloudfoundry.com\/entries\/505133-deploying-a-node-js-app-with-npm-dependencies\">Deploying a Node.js app with NPM dependencies<\/a> \u306b\u3088\u308b\u3068\u3001<\/p>\n<blockquote><p>When deploying any application to vCloudLabs, the directory from which you push the app via vmc push, needs to include all packages and dependencies that are needed to run your application, and your application itself. Node.JS applications are no different.<\/p><\/blockquote>\n<p>\u3068\u3042\u308a\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u4f9d\u5b58\u3057\u305f\u3059\u3079\u3066\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4e00\u7dd2\u306b\u30c7\u30d7\u30ed\u30a4\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u306a\u3044\u3088\u3046\u3067\u3059\u3002<\/p>\n<p>\u305d\u3053\u3067\u3001\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u3042\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306bnode_modules\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u3001\u305d\u306e\u4e2d\u306bMongoDB\u30c9\u30e9\u30a4\u30d0\u3092\u30b3\u30d4\u30fc\u3057\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ mkdir node_modules\ncf@debian:~\/mongo-node$ cp -a ~\/.node_libraries\/.npm\/mongodb\/active\/package\/lib\/mongodb\/ node_modules\ncf@debian:~\/mongo-node$<\/pre>\n<p>\u518d\u5ea6\u3001\u30b5\u30f3\u30d7\u30eb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u66f4\u65b0\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u3063\u3066\u3001\u4e00\u7dd2\u306bMongoDB\u30c9\u30e9\u30a4\u30d0\u3082Cloud Foundry\u4e0a\u306b\u8ee2\u9001\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre>cf@debian:~\/mongo-node$ vmc update mongo-node\nUploading Application:\n  Checking for available resources: OK\n  Processing resources: OK\n  Packing application: OK\n  Uploading (1K): OK\nPush Status: OK\nStopping Application: OK\nStaging Application: OK\nStarting Application: OK                                                        \n\ncf@debian:~\/mongo-node$<\/pre>\n<p>\u518d\u3073\u3001Web\u30d6\u30e9\u30a6\u30b6\u3067 http:\/\/mongo-node-creationline.cloudfoundry.com\/ \u306b<br \/>\n\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002<\/p>\n<pre>{\"ip\":\"172.30.49.41\",\"ts\":\"2012-01-16T13:18:30.767Z\",\"_id\":\"4f1423a6852cd13470000001\"}<\/pre>\n<p>\u4ee5\u4e0a\u306e\u3088\u3046\u306b\u3001\u4eca\u5ea6\u306f\u6b63\u5e38\u306b\u52d5\u4f5c\u3059\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>node.js\u3068MongoDB\u306e\u9023\u643a node.js\u306f\u3001\u300c\u30b5\u30fc\u30d0\u30b5\u30a4\u30c9JavaScript\u300d\u3068\u5f62\u5bb9\u3055\u308c\u308b\u3053\u3068\u304c\u591a\u3044\u3067\u3059\u304c\u3001\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306a\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u305f\u3081\u306eJavaScript\u3067\u4f5c\u6210\u3055\u308c\u305f\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0 [&#8230;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[31],"tags":[],"class_list":["post-1631","post","type-post","status-publish","format-standard","hentry","category-higuchi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cloud Foundry\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046[4] - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3<\/title>\n<meta name=\"description\" content=\"d-higuchi |node.js\u3068MongoDB\u306e\u9023\u643a\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.creationline.com\/tech-blog\/1631\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cloud Foundry\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046[4] - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"og:description\" content=\"d-higuchi |node.js\u3068MongoDB\u306e\u9023\u643a\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.creationline.com\/tech-blog\/1631\" \/>\n<meta property=\"og:site_name\" content=\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/creationline\" \/>\n<meta property=\"article:published_time\" content=\"2012-02-09T08:30:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-29T01:31:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2026\/01\/screenshot.png\" \/>\n\t<meta property=\"og:image:width\" content=\"470\" \/>\n\t<meta property=\"og:image:height\" content=\"394\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daisuke Higuchi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@creationline\" \/>\n<meta name=\"twitter:site\" content=\"@creationline\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daisuke Higuchi\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"10\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/1631#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/1631\"},\"author\":{\"name\":\"Daisuke Higuchi\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/16f1373831fb6fd17387f16ae1195206\"},\"headline\":\"Cloud Foundry\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046[4]\",\"datePublished\":\"2012-02-09T08:30:28+00:00\",\"dateModified\":\"2023-08-29T01:31:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/1631\"},\"wordCount\":179,\"articleSection\":[\"d-higuchi\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/1631\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/1631\",\"name\":\"Cloud Foundry\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046[4] - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\"},\"datePublished\":\"2012-02-09T08:30:28+00:00\",\"dateModified\":\"2023-08-29T01:31:50+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/16f1373831fb6fd17387f16ae1195206\"},\"description\":\"d-higuchi |node.js\u3068MongoDB\u306e\u9023\u643a\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/1631#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/1631\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/1631#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"HOME\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cloud Foundry\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046[4]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/\",\"name\":\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"description\":\"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/16f1373831fb6fd17387f16ae1195206\",\"name\":\"Daisuke Higuchi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/d-higuchi-wp-icon-230x230.png\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/d-higuchi-wp-icon-230x230.png\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/d-higuchi-wp-icon-230x230.png\",\"caption\":\"Daisuke Higuchi\"},\"description\":\"Chef\u30fbDocker\u30fbMirantis\u88fd\u54c1\u306a\u3069\u306e\u6280\u8853\u8981\u7d20\u306b\u52a0\u3048\u3066\u3001\u4f1a\u8b70\u306e\u9032\u3081\u65b9\u30fb\u6587\u7ae0\u306e\u66f8\u304d\u65b9\u306a\u3069\u306e\u696d\u52d9\u6539\u5584\u306b\u3082\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002\u300cChef\u6d3b\u7528\u30ac\u30a4\u30c9\u300d\u5171\u8457\u306e\u307b\u304b\u3001Debian Official Developer\u3082\u3084\u3063\u3066\u3044\u307e\u3059\u3002\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cloud Foundry\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046[4] - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"d-higuchi |node.js\u3068MongoDB\u306e\u9023\u643a","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.creationline.com\/tech-blog\/1631","og_locale":"ja_JP","og_type":"article","og_title":"Cloud Foundry\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046[4] - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","og_description":"d-higuchi |node.js\u3068MongoDB\u306e\u9023\u643a","og_url":"https:\/\/www.creationline.com\/tech-blog\/1631","og_site_name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","article_publisher":"https:\/\/www.facebook.com\/creationline","article_published_time":"2012-02-09T08:30:28+00:00","article_modified_time":"2023-08-29T01:31:50+00:00","og_image":[{"width":470,"height":394,"url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2026\/01\/screenshot.png","type":"image\/png"}],"author":"Daisuke Higuchi","twitter_card":"summary_large_image","twitter_creator":"@creationline","twitter_site":"@creationline","twitter_misc":{"\u57f7\u7b46\u8005":"Daisuke Higuchi","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"10\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.creationline.com\/tech-blog\/1631#article","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/1631"},"author":{"name":"Daisuke Higuchi","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/16f1373831fb6fd17387f16ae1195206"},"headline":"Cloud Foundry\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046[4]","datePublished":"2012-02-09T08:30:28+00:00","dateModified":"2023-08-29T01:31:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/1631"},"wordCount":179,"articleSection":["d-higuchi"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/www.creationline.com\/tech-blog\/1631","url":"https:\/\/www.creationline.com\/tech-blog\/1631","name":"Cloud Foundry\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046[4] - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#website"},"datePublished":"2012-02-09T08:30:28+00:00","dateModified":"2023-08-29T01:31:50+00:00","author":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/16f1373831fb6fd17387f16ae1195206"},"description":"d-higuchi |node.js\u3068MongoDB\u306e\u9023\u643a","breadcrumb":{"@id":"https:\/\/www.creationline.com\/tech-blog\/1631#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.creationline.com\/tech-blog\/1631"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.creationline.com\/tech-blog\/1631#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"HOME","item":"https:\/\/www.creationline.com\/tech-blog"},{"@type":"ListItem","position":2,"name":"Cloud Foundry\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046[4]"}]},{"@type":"WebSite","@id":"https:\/\/www.creationline.com\/tech-blog\/#website","url":"https:\/\/www.creationline.com\/tech-blog\/","name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.creationline.com\/tech-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/16f1373831fb6fd17387f16ae1195206","name":"Daisuke Higuchi","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/08\/d-higuchi-wp-icon-230x230.png","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/08\/d-higuchi-wp-icon-230x230.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/08\/d-higuchi-wp-icon-230x230.png","caption":"Daisuke Higuchi"},"description":"Chef\u30fbDocker\u30fbMirantis\u88fd\u54c1\u306a\u3069\u306e\u6280\u8853\u8981\u7d20\u306b\u52a0\u3048\u3066\u3001\u4f1a\u8b70\u306e\u9032\u3081\u65b9\u30fb\u6587\u7ae0\u306e\u66f8\u304d\u65b9\u306a\u3069\u306e\u696d\u52d9\u6539\u5584\u306b\u3082\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002\u300cChef\u6d3b\u7528\u30ac\u30a4\u30c9\u300d\u5171\u8457\u306e\u307b\u304b\u3001Debian Official Developer\u3082\u3084\u3063\u3066\u3044\u307e\u3059\u3002","url":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi"}]}},"_links":{"self":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/1631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/comments?post=1631"}],"version-history":[{"count":1,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/1631\/revisions"}],"predecessor-version":[{"id":65685,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/1631\/revisions\/65685"}],"wp:attachment":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media?parent=1631"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/categories?post=1631"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/tags?post=1631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}