{"id":1961,"date":"2016-04-10T03:08:38","date_gmt":"2016-04-09T18:08:38","guid":{"rendered":"http:\/\/1bed.allright.life\/?p=1961"},"modified":"2020-04-18T21:49:33","modified_gmt":"2020-04-18T12:49:33","slug":"post-1961","status":"publish","type":"post","link":"https:\/\/1bed.allright.life\/?p=1961","title":{"rendered":"CentOS 7 \u3067 Hubot on Docker \u3092\u3084\u3063\u3066\u307f\u305f\u30e1\u30e2"},"content":{"rendered":"<p>Docker \u3053\u3093\u306a\u306b\u6d41\u884c\u3063\u3066\u3044\u308b\u306e\u306b\u3001\u524d\u8077\u306e\u5f8c\u8f29\u305f\u3061\u3082\u307f\u3093\u306a\u4f7f\u3063\u3066\u3044\u305f\u306e\u306b\u3001\u4ffa\u4f7f\u3063\u3066\u3044\u306a\u304b\u3063\u305f\u30fc<\/p>\n<p>\u307e\u3041\u8a00\u3044\u8a33\u8a00\u3046\u3068\u3001\u30e9\u30a4\u30f3\u7ba1\u7406\u8077\u3068\u304b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u3068\u304b\u3001\u30b5\u30fc\u30d3\u30b9\u4f01\u753b\u3068\u304b\u304c\u304a\u4ed5\u4e8b\u3060\u3063\u305f\u3093\u3067\u3001\u5fc5\u8981\u306a\u304b\u3063\u305f\u304b\u3089\u3068\u3044\u3046\u3053\u3068\u304c\u3042\u308b\u3093\u3067\u3059\u304c&#8230;<\/p>\n<p>Hubot \u3082 Docker \u3082\u4f55\u3082\u3084\u3063\u305f\u3053\u3068\u306a\u304b\u3063\u305f\u3057\u3001\u30e1\u30e2\u3063\u3066\u306a\u3044\u306e\u3067\u3046\u308d\u899a\u3048\u3067\u30e1\u30e2\u308b<br \/>\n\u9593\u9055\u3063\u3066\u305f\u3089\u5f8c\u3067\u76f4\u305b\u3070\u3044\u3044\u3084\u3093<\/p>\n<p><!--more--><\/p>\n<h2>\u4e8b\u524d\u6e96\u5099\u3068\u74b0\u5883<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.conoha.jp\/\">ConoHa \u306e 900 \u5186\u30d7\u30e9\u30f3<\/a> \u3067 CentOS 7.2 \u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u6e08\u307f<\/li>\n<li>Docker \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u6e08\u307e\u305b\u3066\u304a\u304f <a href=\"http:\/\/1bed.allright.life\/?p=1912\">&gt;&gt;\u524d\u306e\u65e5\u8a18\u53c2\u7167<\/a><\/li>\n<li>Hubot \u3092\u52d5\u304b\u3059 Slack \u30c1\u30fc\u30e0\u3092\u4f5c\u6210\u3001API \u306e Token \u3092\u53d6\u5f97\u3057\u3066\u304a\u304f<\/li>\n<\/ul>\n<h2>\u76ee\u6a19<\/h2>\n<ul>\n<li>\u3044\u304f\u3064\u304b\u306e Slack \u306b Hubot \u3092\u53c2\u52a0\u3055\u305b\u308b<\/li>\n<li>Hubot \u3054\u3068\u306b\u30b3\u30f3\u30c6\u30ca\u3092\u8d77\u52d5\u3055\u305b\u308b<\/li>\n<\/ul>\n<h2>\u624b\u9806<\/h2>\n<h3>Hubot \u3092\u52d5\u304b\u3059\u305f\u3081\u3001node.js \u306e\u74b0\u5883\u3092\u7528\u610f\u3059\u308b<\/h3>\n<p>\u3053\u3053\u3067\u306f Docker Hub \u306b\u3042\u308b\u516c\u5f0f\u306e\u30a4\u30e1\u30fc\u30b8\u3092\u5229\u7528\u3057\u305f<\/p>\n<pre><code class=\"language-bash\">$ docker pull node<\/code><\/pre>\n<p>image \u306e\u78ba\u8a8d<\/p>\n<pre><code class=\"language-bash\">$ docker images\nREPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE\ndocker.io\/node      latest              2c06219661ed        8 days ago          644.2 MB<\/code><\/pre>\n<h3>\u30b3\u30f3\u30c6\u30ca\u306e\u8d77\u52d5<\/h3>\n<p>node.js \u306e\u30a4\u30e1\u30fc\u30b8\u3092\u4f7f\u3044\u8d77\u52d5<\/p>\n<pre><code class=\"language-bash\">$ docker run --rm -it -v \/etc\/localtime:\/etc\/localtime:ro --name &quot;bot-base&quot; node \/bin\/sh<\/code><\/pre>\n<h4>\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u8aac\u660e<\/h4>\n<ul>\n<li>&#8211;name &quot;bot-base&quot;<br \/>\n\u30b3\u30f3\u30c6\u30ca\u540d\u306f bot-base<\/li>\n<li>node<br \/>\n\u4f7f\u3046\u30a4\u30e1\u30fc\u30b8\u306f node.js<\/li>\n<li>-v \/etc\/localtime:\/etc\/localtime:ro<br \/>\nlocaletime \u306f\u30db\u30b9\u30c8\u3068 Readonly \u3067\u5171\u6709\u3059\u308b(\u65e5\u672c\u306e\u6642\u9593\u306b\u3059\u308b)<\/li>\n<li>-it , \/bin\/sh<br \/>\n\u8d77\u52d5\u5f8c\u30b7\u30a7\u30eb\u306b\u5165\u308b<\/li>\n<li>&#8211;rm<br \/>\n\u843d\u3068\u3057\u305f\u6642\u306b\u30b3\u30f3\u30c6\u30ca\u3092\u524a\u9664\u3059\u308b<\/li>\n<\/ul>\n<h4>\u30b3\u30f3\u30c6\u30ca\u8d77\u52d5\u5f8c<\/h4>\n<ul>\n<li>Ctrl+p, Ctrl+q \u3067\u30b3\u30f3\u30c6\u30ca\u304b\u3089\u629c\u3051\u308b<\/li>\n<li>exit \u3067\u629c\u3051\u305f\u3089\u30b3\u30f3\u30c6\u30ca\u306f\u524a\u9664\u3055\u308c\u308b(&#8211;rm \u3092\u3064\u3051\u3066\u3044\u308b\u305f\u3081)<\/li>\n<\/ul>\n<h4>&#8211;rm \u3092\u3064\u3051\u305a\u306b\u30b3\u30f3\u30c6\u30ca\u3092\u624b\u52d5\u3067\u524a\u9664\u3059\u308b\u3068\u304d<\/h4>\n<p>\u8d77\u52d5\u4e2d\u306e\u30b3\u30f3\u30c6\u30ca\u3092\u78ba\u8a8d<\/p>\n<pre><code class=\"language-bash\">$ docker ps -a\nCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES\n2f12ee8929bb        bot-base            &quot;\/bin\/sh&quot;                  5 days ago          Up 5 days                               bot-base<\/code><\/pre>\n<p>\u30b3\u30f3\u30c6\u30ca\u306e\u505c\u6b62<\/p>\n<pre><code class=\"language-bash\">$ docker stop bot-base\nbot-base<\/code><\/pre>\n<p>\u30b3\u30f3\u30c6\u30ca\u306e\u524a\u9664<\/p>\n<pre><code class=\"language-bash\">$ docker rm bot-base\nbot-base<\/code><\/pre>\n<h3>Hubot \u52d5\u304b\u305b\u308b\u307e\u3067\u3072\u305f\u3059\u3089\u9811\u5f35\u308b<\/h3>\n<p>\u6b21\u306e\u4e8b\u304c\u3067\u304d\u308b\u307e\u3067\u3001\u8a66\u3057\u3066\u307f\u3066\u30e1\u30e2\u3063\u3066\u3001\u307e\u305f\u30b3\u30f3\u30c6\u30ca\u6700\u521d\u304b\u3089\u3084\u3063\u3066\u307f\u3066\u3092\u7e70\u308a\u8fd4\u3057\u305f<\/p>\n<ul>\n<li>Hubot Generator \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/li>\n<li>Hubot \u3092\u4f5c\u6210<\/li>\n<li>Hubot \u3092\u8d77\u52d5<\/li>\n<\/ul>\n<p>\u3053\u308c\u3092\u5143\u306b\u3057\u3066 Dockerfile \u3092\u4f5c\u3063\u305f<br \/>\nDockerfile \u306f\u6b21\u306e\u901a\u308a<\/p>\n<pre><code class=\"language-bash\">FROM node\nMAINTAINER miyamiya\n\nRUN npm install -g yo generator-hubot\nRUN npm list -g yo generator-hubot\nRUN useradd bot\nRUN mkdir \/home\/bot &amp;&amp; chown bot.bot \/home\/bot\n\nUSER bot\nWORKDIR \/home\/bot\nRUN  yo hubot --owner &quot;miyamiya&quot; --name &quot;bot&quot; --description &quot;Hubot image&quot; --adapter slack\n\nCMD cd \/home\/bot\/hubot; bin\/hubot --adapter slack<\/code><\/pre>\n<h3>Hubot \u7528\u30a4\u30e1\u30fc\u30b8\u3092\u4f5c\u6210\u3059\u308b<\/h3>\n<p>Dockerfile \u304b\u3089 image \u306e\u4f5c\u6210<\/p>\n<pre><code class=\"language-bash\">$ docker build -t bot-base .\nSending build context to Docker daemon 4.096 kB\nStep 1 : FROM node\n ---&gt; 2c06219661ed\nStep 2 : MAINTAINER miyamiya\n ---&gt; Using cache\n ---&gt; 6cd0fb4b3b24\nStep 3 : RUN npm install -g yo generator-hubot\n ---&gt; Using cache\n ---&gt; 86f522f924ca\n  \uff1a\n\uff08\u7701\u7565\uff09\n  \uff1a\nnpm info ok \n ---&gt; ef4964132a7f\nRemoving intermediate container 2464b01dd061\nStep 10 : CMD bin\/hubot --adapter slack\n ---&gt; Running in 2d797a7465fd\n ---&gt; c64050988afd\nRemoving intermediate container 2d797a7465fd\nSuccessfully built c64050988afd<\/code><\/pre>\n<p>image \u306e\u78ba\u8a8d<\/p>\n<pre><code class=\"language-bash\">$ docker images\nREPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE\nbot-base            latest              c64050988afd        18 minutes ago      698.8 MB<\/code><\/pre>\n<h4>\u4f5c\u3063\u305f\u30a4\u30e1\u30fc\u30b8\u306e\u524a\u9664\u65b9\u6cd5<\/h4>\n<p>image \u306e\u524a\u9664\u4f8b<\/p>\n<pre><code class=\"language-bash\">$ docker rmi bot-base:latest  # \u53c8\u306f docker rmi c64050988afd \u3067\u3082\u53ef\nUntagged: bot-base:latest\nDeleted: c64050988afde89c14b937c6c1382a984b1a676e10b0a96bb1566a98ba23621e\nDeleted: ef4964132a7f637a3862086cc64ffce53a5acd0d6a459d9a338e24ce98de96b7\nDeleted: e7cec4828b1aa52b9840fe8cf099ee43d36ed802c68936c113ecc822a0882715\nDeleted: cf0c4e3fff369b137cf68839abdc2869266cb846a9bbc247e4b517c667936d9e\nDeleted: 5a6f64bcca492dc861035ed78cb3e8916a3e584832fdd0874f2482cc637a54b4\nDeleted: f3f7ed898049035d93d38b951e012644abe8463b72efca2409aea8769c03cf26\nDeleted: fa599f410d58049a73f9ea39e86fda7c50deb5b386d98be286f21ff0effeb225<\/code><\/pre>\n<h3>\u4f5c\u3063\u305f\u30a4\u30e1\u30fc\u30b8\u3092\u4f7f\u3063\u3066\u8d77\u52d5\u3059\u308b<\/h3>\n<p>Hubot \u304c\u8f09\u3063\u305f\u30a4\u30e1\u30fc\u30b8\u3092\u8d77\u52d5<\/p>\n<pre><code class=\"language-bash\">$ docker run -itd -v \/etc\/localtime:\/etc\/localtime:ro -e &quot;HUBOT_SLACK_TOKEN=slack\u304b\u3089\u53d6\u5f97\u3057\u305ftoken&quot; --name &quot;\u4f5c\u6210\u3059\u308b\u30b3\u30f3\u30c6\u30ca\u540d&quot; bot-base \/bin\/sh<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Docker \u3053\u3093\u306a\u306b\u6d41\u884c\u3063\u3066\u3044\u308b\u306e\u306b\u3001\u524d\u8077\u306e\u5f8c\u8f29\u305f\u3061\u3082\u307f\u3093\u306a\u4f7f\u3063\u3066\u3044\u305f\u306e\u306b\u3001\u4ffa\u4f7f\u3063\u3066\u3044\u306a\u304b\u3063\u305f\u30fc \u307e\u3041\u8a00\u3044\u8a33\u8a00\u3046\u3068\u3001\u30e9\u30a4\u30f3\u7ba1\u7406\u8077\u3068\u304b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u3068\u304b\u3001\u30b5\u30fc\u30d3\u30b9\u4f01\u753b\u3068\u304b\u304c\u304a\u4ed5\u4e8b\u3060\u3063\u305f\u3093\u3067\u3001\u5fc5\u8981\u306a\u304b\u3063\u305f\u304b\u3089\u3068\u3044 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[91,93],"class_list":["post-1961","post","type-post","status-publish","format-standard","hentry","category-virtualization","tag-docker","tag-hubot"],"_links":{"self":[{"href":"https:\/\/1bed.allright.life\/index.php?rest_route=\/wp\/v2\/posts\/1961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/1bed.allright.life\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/1bed.allright.life\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/1bed.allright.life\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/1bed.allright.life\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1961"}],"version-history":[{"count":22,"href":"https:\/\/1bed.allright.life\/index.php?rest_route=\/wp\/v2\/posts\/1961\/revisions"}],"predecessor-version":[{"id":3161,"href":"https:\/\/1bed.allright.life\/index.php?rest_route=\/wp\/v2\/posts\/1961\/revisions\/3161"}],"wp:attachment":[{"href":"https:\/\/1bed.allright.life\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/1bed.allright.life\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/1bed.allright.life\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}