{"id":465,"date":"2020-08-22T14:18:32","date_gmt":"2020-08-22T05:18:32","guid":{"rendered":"https:\/\/outdoor-development.work\/index\/?p=465"},"modified":"2020-08-22T15:00:10","modified_gmt":"2020-08-22T06:00:10","slug":"%e3%82%b5%e3%83%bc%e3%83%89%e3%83%91%e3%83%83%e3%82%b1%e3%83%bc%e3%82%b8%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fgo%e3%81%ae%e3%82%a2%e3%83%97%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3","status":"publish","type":"post","link":"https:\/\/outdoor-development.work\/index\/2020\/08\/22\/%e3%82%b5%e3%83%bc%e3%83%89%e3%83%91%e3%83%83%e3%82%b1%e3%83%bc%e3%82%b8%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fgo%e3%81%ae%e3%82%a2%e3%83%97%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3\/","title":{"rendered":"\u3010Go\u3011\u30b5\u30fc\u30c9\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4f7f\u7528\u3057\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092Heroku\u306b\u30c7\u30d7\u30ed\u30a4\u3059\u308b"},"content":{"rendered":"\n<p><strong><em>2020\/02\/29 \u73fe\u5728\u3053\u306e\u8a18\u4e8b\u306e\u3084\u308a\u65b9\u3067\u306f\u30c7\u30d7\u30ed\u30a4\u3067\u304d\u307e\u305b\u3093\u3002<\/em><\/strong><\/p>\n\n\n\n<p><strong><em>\u4e0b\u8a18\u3001\u30ea\u30f3\u30af\u53c2\u7167<\/em><\/strong> <\/p>\n\n\n\n<p><a href=\"https:\/\/outdoor-development.work\/index\/2020\/08\/22\/%e3%80%90go%e3%80%91govendor%e3%81%a7%e4%be%9d%e5%ad%98%e9%96%a2%e4%bf%82%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%8c%e5%8f%96%e5%be%97%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%84%e3%82%a8%e3%83%a9\/\" data-type=\"URL\" data-id=\"https:\/\/outdoor-development.work\/index\/2020\/08\/22\/%e3%80%90go%e3%80%91govendor%e3%81%a7%e4%be%9d%e5%ad%98%e9%96%a2%e4%bf%82%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%8c%e5%8f%96%e5%be%97%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%84%e3%82%a8%e3%83%a9\/\" target=\"_blank\" rel=\"noreferrer noopener\">govendor\u3067\u4f9d\u5b58\u95a2\u4fc2\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u53d6\u5f97\u3067\u304d\u306a\u3044\u30a8\u30e9\u30fc\u306b\u3064\u3044\u3066 <\/a><\/p>\n\n\n\n<p><strong><em>go modules\u3092\u4f7f\u7528\u3057\u305f\u3084\u308a\u65b9<\/em><\/strong> <\/p>\n\n\n\n<p><a href=\"https:\/\/outdoor-development.work\/index\/2020\/08\/22\/%e3%80%90go%e3%80%91%e3%82%b5%e3%83%bc%e3%83%89%e3%83%91%e3%83%83%e3%82%b1%e3%83%bc%e3%82%b8%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9f%e3%82%a2%e3%83%97%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7\/\" data-type=\"URL\" data-id=\"https:\/\/outdoor-development.work\/index\/2020\/08\/22\/%e3%80%90go%e3%80%91%e3%82%b5%e3%83%bc%e3%83%89%e3%83%91%e3%83%83%e3%82%b1%e3%83%bc%e3%82%b8%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9f%e3%82%a2%e3%83%97%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u30b5\u30fc\u30c9\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4f7f\u7528\u3057\u305fGo\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092Heroku\u306b\u30c7\u30d7\u30ed\u30a4\u3059\u308b v2<\/a><\/p>\n\n\n\n<h2>\u6982\u8981<\/h2>\n\n\n\n<p>Portfolio\u3092\u4f5c\u308b\u306b\u5f53\u305f\u3063\u3066Go\u3067Heroku\u306b\u30c7\u30d7\u30ed\u30a4\u3057\u3088\u3046\u3068\u3057\u305f\u3089\u30cf\u30de\u3063\u305f\n\u7d50\u8ad6\u304b\u3089\u3044\u3046\u3068\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30b3\u30df\u30c3\u30c8\u6f0f\u308c<\/p>\n\n\n\n<p>Heroku\u3067\u516c\u5f0fHP\u306b\u30c7\u30d7\u30ed\u30a4\u65b9\u6cd5\u306f\u8f09\u3063\u3066\u3044\u305f\u304c\u3001\u30b5\u30fc\u30c9\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4f7f\u7528\u3057\u305f\u969b\u306f\u30cf\u30de\u308b\u306e\u3067\u4eca\u56de\u306e\u4e8b\u8c61\u3092\u62bc\u3055\u3048\u3066\u304a\u304f<\/p>\n\n\n\n<p>#Go\u3067\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\n\u4eca\u56de\u306fgin\u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3059\u308b\nHeroku\u7528\u306e\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u3001\u4ee5\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u914d\u7f6e<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">package main\n\nimport (\n\t\"github.com\/gin-gonic\/gin\"\n)\n\ntype User struct {\n\tName string\n\tAge  int\n}\n\nfunc main() {\n\trouter := gin.Default()\n\t\/\/ css\u3001js\u3000\u306a\u3069\u306e\u9759\u7684\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080\u5834\u5408\u3002\u4eca\u56de\u306f\u4f7f\u7528\u3057\u306a\u3044\u3002\n\t\/\/ router.Static(\"\/assets\", \".\/assets\")\n\n\trouter.LoadHTMLGlob(\"templates\/*.html\")\n\n\trouter.GET(\"\/\", handler)\n\n\trouter.Run()\n}\n\nfunc handler(ctx *gin.Context) {\n\n\tuser := User{\"User\", 20}\n\n\tctx.HTML(200, \"index.html\", gin.H{\n\t\t\"user\": user,\n\t})\n}\n<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!DOCTYPE html>\n&lt;html>\n    &lt;div>\n        &lt;p>Name: {{.user.Name}} &lt;\/p>\n        &lt;p>Name: {{.user.Age}} &lt;\/p>\n    &lt;\/div>\n&lt;\/html>\n<\/pre>\n\n\n\n<p>#govendor\u3092\u4f7f\u7528\u3057\u3066\u30b5\u30fc\u30c9\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u8ffd\u52a0\ngovendor \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304b\u3089\u884c\u3063\u3066\u304f\u3060\u3055\u3044\u3002\n<a href=\"https:\/\/github.com\/kardianos\/govendor\">https:\/\/github.com\/kardianos\/govendor<\/a><\/p>\n\n\n\n<p>govendor\u306b\u3064\u3044\u3066\u306f\u4e0b\u8a18\u306e\u8a18\u4e8b\u304c\u3068\u3066\u3082\u7406\u89e3\u3067\u304d\u305f\u306e\u3067\u53c2\u8003\u306b\u3055\u305b\u3066\u9802\u304d\u307e\u3057\u305f\u3002\n<a href=\"https:\/\/qiita.com\/nirasan\/items\/32f2e0fc94ccf123ca55\">Heroku \u3078\u306e Go \u8a00\u8a9e\u88fd\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30d7\u30ed\u30a4\u3068\u4f9d\u5b58\u30d1\u30c3\u30b1\u30fc\u30b8\u7ba1\u7406\u65b9\u6cd5\u306e\u6bd4\u8f03<\/a><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#\u3000\u521d\u671f\u5316\n$ govendor init\n#\u3000\u4f9d\u5b58\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\n$ govendor fetch +out\n<\/pre>\n\n\n\n<p>\u5f8c\u306fHeroku\u516c\u5f0f\u306e\u30b3\u30de\u30f3\u30c9\u901a\u308a\u3001\u30b3\u30df\u30c3\u30c8\u2192\u30d7\u30c3\u30b7\u30e5\u3092\u884c\u3046<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ git init &amp;&amp; git add -A .\nInitialized empty Git repository in \/Users\/kazu\/workspace\/go\/src\/Heroku\/.git\/\n\n$ git commit -m \"init\"\ncreate mode 100644 main.go\ncreate mode 100644 templates\/index.html\n\u301c\u301c\u301c\u3000\u4ee5\u4e0b\u3001vendor\u914d\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u3000\u301c\u301c\u301c\u301c\u301c\u301c\n create mode 100644 vendor\/***\n\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\u301c\ncreate mode 100644 vendor\/vendor.json\n<\/pre>\n\n\n\n<p>Heroku\u306e\u30a2\u30d7\u30ea\u3092\u4f5c\u6210<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ heroku create\nCreating app... done, \u2b22 ancient-mesa-82891\nhttps:\/\/ancient-mesa-82891.herokuapp.com\/ | https:\/\/git.heroku.com\/ancient-mesa-82891.git\n$ git push heroku master\n<\/pre>\n\n\n\n<p>Go\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30d7\u30ed\u30a4\u5b8c\u4e86<\/p>\n\n\n\n<p>\u3061\u306a\u307f\u306bpush\u3059\u308b\u969b\u306bgovendor fetch +out\n\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u3001\u4e0b\u8a18\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u304c\u51fa\u308b\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">-----> Go app detected\n-----> Fetching jq... done\n-----> Fetching stdlib.sh.v8... done\n-----> Checking vendor\/vendor.json file.\n !!    The 'heroku.goVersion' field is not specified in 'vendor\/vendor.json'.\n !!    \n !!    Defaulting to go1.12.12\n !!    \n !!    For more details see: https:\/\/devcenter.heroku.com\/articles\/go-apps-with-govendor#build-configuration\n !!    \n-----> New Go Version, clearing old cache\n-----> Installing go1.12.12\n-----> Fetching go1.12.12.linux-amd64.tar.gz... done\n-----> Fetching govendor... done\n !!    Installing package '.' (default)\n !!    \n !!    To install a different package spec set 'heroku.install' in 'vendor\/vendor.json'\n !!    \n !!    For more details see: https:\/\/devcenter.heroku.com\/articles\/go-apps-with-govendor#build-configuration\n !!    \n-----> Fetching any unsaved dependencies (govendor sync)\n-----> Running: go install -v -tags heroku . \nmain.go:4:2: cannot find package \"github.com\/gin-gonic\/gin\" in any of:\n\t\/tmp\/tmp.hTplalCHiU\/.go\/src\/Portfolio\/vendor\/github.com\/gin-gonic\/gin (vendor tree)\n\t\/app\/tmp\/cache\/go1.12.12\/go\/src\/github.com\/gin-gonic\/gin (from $GOROOT)\n\t\/tmp\/tmp.hTplalCHiU\/.go\/src\/github.com\/gin-gonic\/gin (from $GOPATH)\n !     Push rejected, failed to compile Go app.\n !     Push failed\n<\/pre>\n\n\n\n<p>Heroku\u306eGithub\u306b\u30b5\u30fc\u30c9\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30b3\u30df\u30c3\u30c8\u3067\u304d\u3066\u3044\u306a\u3044\u305f\u3081\u30d3\u30eb\u30c9\u30a8\u30e9\u30fc\u8d77\u304d\u3066\u3057\u307e\u3046\u3068\u306e\u3053\u3068\u3067\u3057\u305f\u3002 <\/p>\n\n\n\n<p>\u516c\u5f0f\u306e\u3084\u308a\u65b9\u3060\u3051\u3067\u306f\u9759\u7684\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30c7\u30d7\u30ed\u30a4\u3067\u304d\u3066\u3082\u30b5\u30fc\u30c9\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4f7f\u7528\u3057\u305f\u969b\u306b\u3067\u304d\u306a\u3044\u305f\u3081\u3001\u5c11\u3057\u5de5\u592b\u304c\u5fc5\u8981\u3067\u3057\u305f\u3002 <\/p>\n\n\n\n<p>GoPath\u306e\u8003\u3048\u65b9\u306b\u6163\u308c\u3066\u3044\u304b\u306a\u3044\u3068\u3067\u3059\u304b\u306d\u3002<\/p>\n\n\n\n<p><\/p>\n<div class=\"veu_socialSet veu_contentAddSection\"><script>window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src=\"https:\/\/platform.twitter.com\/widgets.js\";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,\"script\",\"twitter-wjs\"));<\/script><ul><li class=\"sb_twitter sb_icon\"><a href=\"\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Foutdoor-development.work%2Findex%2F2020%2F08%2F22%2F%25e3%2582%25b5%25e3%2583%25bc%25e3%2583%2589%25e3%2583%2591%25e3%2583%2583%25e3%2582%25b1%25e3%2583%25bc%25e3%2582%25b8%25e3%2582%2592%25e4%25bd%25bf%25e7%2594%25a8%25e3%2581%2597%25e3%2581%259fgo%25e3%2581%25ae%25e3%2582%25a2%25e3%2583%2597%25e3%2583%25aa%25e3%2582%25b1%25e3%2583%25bc%25e3%2582%25b7%25e3%2583%25a7%25e3%2583%25b3%2F&amp;text=Outdoor+Development\" target=\"_blank\" ><span class=\"vk_icon_w_r_sns_twitter icon_sns\"><\/span><span class=\"sns_txt\">twitter<\/span><\/a><\/li><\/ul><\/div><!-- [ \/.socialSet ] -->","protected":false},"excerpt":{"rendered":"<p>2020\/02\/29 \u73fe\u5728\u3053\u306e\u8a18\u4e8b\u306e\u3084\u308a\u65b9\u3067\u306f\u30c7\u30d7\u30ed\u30a4\u3067\u304d\u307e\u305b\u3093\u3002 \u4e0b\u8a18\u3001\u30ea\u30f3\u30af\u53c2\u7167 govendor\u3067\u4f9d\u5b58\u95a2\u4fc2\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u53d6\u5f97\u3067\u304d\u306a\u3044\u30a8\u30e9\u30fc\u306b\u3064\u3044\u3066 go modules\u3092\u4f7f\u7528\u3057\u305f\u3084\u308a\u65b9 \u30b5\u30fc\u30c9\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4f7f\u7528\u3057\u305fGo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7,6],"tags":[45,46,59],"_links":{"self":[{"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/posts\/465"}],"collection":[{"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/comments?post=465"}],"version-history":[{"count":5,"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/posts\/465\/revisions"}],"predecessor-version":[{"id":491,"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/posts\/465\/revisions\/491"}],"wp:attachment":[{"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/media?parent=465"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/categories?post=465"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/tags?post=465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}