{"id":4065,"date":"2023-11-16T00:16:02","date_gmt":"2023-11-15T15:16:02","guid":{"rendered":"https:\/\/blog.since2020.jp\/?p=4065"},"modified":"2023-11-16T00:39:10","modified_gmt":"2023-11-15T15:39:10","slug":"docker%e3%81%a8vscode%e3%82%92%e6%b4%bb%e7%94%a8%e3%81%97%e3%81%a6ubuntu%e3%83%99%e3%83%bc%e3%82%b9%e3%81%aeflask%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e6%a7%8b","status":"publish","type":"post","link":"https:\/\/since2020.jp\/media\/docker%e3%81%a8vscode%e3%82%92%e6%b4%bb%e7%94%a8%e3%81%97%e3%81%a6ubuntu%e3%83%99%e3%83%bc%e3%82%b9%e3%81%aeflask%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e6%a7%8b\/","title":{"rendered":"Docker\u3068VSCode\u3092\u6d3b\u7528\u3057\u3066Ubuntu\u30d9\u30fc\u30b9\u306eFlask\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5"},"content":{"rendered":"\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001Flask\u30a2\u30d7\u30ea\u958b\u767a\u306b\u5fc5\u8981\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u542b\u3093\u3060Docker\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3001\u305d\u308c\u3092\u57fa\u306bUbuntu\u30d9\u30fc\u30b9\u306eFlask\u958b\u767a\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n<h2>\u306f\u3058\u3081\u306b<\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u4eca\u56de\u306e\u8a18\u4e8b\u3067\u306f\u3001Python\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u3042\u308bFlask\u306e\u958b\u767a\u74b0\u5883\u3092\u30b9\u30e0\u30fc\u30ba\u306b\u7acb\u3061\u4e0a\u3052\u308b\u305f\u3081\u306b\u3001\u5fc5\u8981\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u542b\u3093\u3060Docker\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3001\u305d\u308c\u3092\u57fa\u306bUbuntu\u30d9\u30fc\u30b9\u306eDocker\u30a4\u30e1\u30fc\u30b8\u30d3\u30eb\u30c9\u3068\u30b3\u30f3\u30c6\u30ca\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u3067\u7d20\u65e9\u304f\u74b0\u5883\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/span><\/p>\n\n<h2>\u524d\u63d0\u6761\u4ef6<\/h2>\n<p><strong><span style=\"font-family: arial, helvetica, sans-serif\">\u30fb<\/span><span style=\"font-family: arial, helvetica, sans-serif\">Docker\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3002<\/span><\/strong><\/p>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u307e\u3060\u306e\u65b9\u306f<span style=\"color: #0000ff\"><a href=\"https:\/\/www.docker.com\/products\/docker-desktop\/\" style=\"color: #0000ff\">\u3053\u3061\u3089<\/a><\/span>\u304b\u3089\u884c\u3048\u307e\u3059\u3002\u81ea\u8eab\u306ePC\u74b0\u5883\u306b\u5fdc\u3058\u3066Docker Desktop\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/span><\/p>\r\n<p><strong><span style=\"font-family: arial, helvetica, sans-serif\">\u30fbVSCode\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u304a\u308a\u3001<span style=\"color: #0000ff\"><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode-remote.remote-containers\" style=\"color: #0000ff\">Dev Containers<\/a> <\/span>\u62e1\u5f35\u6a5f\u80fd\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3002<\/span><\/strong><\/p>\r\n<p><img decoding=\"async\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-14-14.17.37.png\" alt=\"\" width=\"1370\" height=\"342\" class=\"alignnone size-full wp-image-4067\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-14-14.17.37.png 1370w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-14-14.17.37-300x75.png 300w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-14-14.17.37-1024x256.png 1024w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-14-14.17.37-768x192.png 768w\" sizes=\"(max-width: 1370px) 100vw, 1370px\" \/><\/p>\r\n<p><!-- notionvc: 04657b69-83c2-45c4-9814-47a6711381df --><\/p>\n\n<h2>\u30b9\u30c6\u30c3\u30d71: Docker\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210<\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u4ee5\u4e0b\u306e\u5185\u5bb9\u3067Docker\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u3056\u3063\u304f\u308a\u8aac\u660e\u3059\u308b\u3068<span data-token-index=\"1\" class=\"notion-enable-hover\" style=\"color: #ff0000\">FROM<\/span>\u306f\u30d9\u30fc\u30b9\u30a4\u30e1\u30fc\u30b8\u306e\u9078\u629e\u3001<span data-token-index=\"3\" class=\"notion-enable-hover\" style=\"color: #ff0000\">RUN<\/span>\u306f\u305d\u306e\u30d9\u30fc\u30b9\u30a4\u30e1\u30fc\u30b8\u4e0a\u3067\u5b9f\u884c\u3059\u308b\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u4f5c\u696d\u3092\u6307\u5b9a\u3059\u308b\u3068\u899a\u3048\u3066\u304a\u304f\u3068\u826f\u3044\u3067\u3057\u3087\u3046\u3002<\/span><!-- notionvc: 13433a9f-a808-4b5e-bcc8-ed58b9ba67d1 --><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>FROM ubuntu:latest\r\n\r\nRUN apt-get update &amp;&amp; \\\r\napt-get install -y python3 python3-pip\r\n\r\n# Flask\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\r\nRUN pip3 install flask\r\n\r\n# Flask\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4fdd\u5b58\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\r\nWORKDIR \/app<\/code><\/pre>\r\n<\/div>\n\n<h2>\u30b9\u30c6\u30c3\u30d72: Docker\u30a4\u30e1\u30fc\u30b8\u306e\u69cb\u7bc9<\/h2>\n<p><strong><span style=\"font-family: arial, helvetica, sans-serif\">\u30bf\u30fc\u30df\u30ca\u30eb\u306b\u79fb\u52d5\u3057\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067Docker\u30d5\u30a1\u30a4\u30eb\u3092\u57fa\u306b\u30a4\u30e1\u30fc\u30b8\u3092\u69cb\u7bc9\u3057\u307e\u3059\u3002<\/span><\/strong><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>#dockerfile\u3092\u4f5c\u3063\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5\r\ncd docker.flask\r\n\r\nbashCopy code\r\ndocker build -t ubuntu-flask-dev .<\/code><\/pre>\r\n<\/div>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">Docker\u30d5\u30a1\u30a4\u30eb\u3067\u8a18\u8ff0\u3057\u305f\u901a\u308a\u306b\u30a4\u30e1\u30fc\u30b8\u304c\u30d3\u30eb\u30c9\u3055\u308c\u308c\u3070\u6210\u529f\u3067\u3059\u3002<\/span><\/p>\r\n<p><img decoding=\"async\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.49.02.jpg\" alt=\"\" width=\"1134\" height=\"414\" class=\"alignnone size-full wp-image-4066\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.49.02.jpg 1134w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.49.02-300x110.jpg 300w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.49.02-1024x374.jpg 1024w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.49.02-768x280.jpg 768w\" sizes=\"(max-width: 1134px) 100vw, 1134px\" \/><\/p>\r\n<p>&nbsp;<\/p>\n\n<h2>\u30b9\u30c6\u30c3\u30d73: Docker\u30b3\u30f3\u30c6\u30ca\u306e\u4f5c\u6210\u3068\u8d77\u52d5<\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u69cb\u7bc9\u3057\u305f\u30a4\u30e1\u30fc\u30b8\u304b\u3089\u30b3\u30f3\u30c6\u30ca\u3092\u4f5c\u6210\u3057\u3001\u8d77\u52d5\u3057\u307e\u3059\u30025000\u756a\u30dd\u30fc\u30c8\u3092\u30db\u30b9\u30c8\u516c\u958b\u306b\u3057\u307e\u3059\u3002<\/span><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>docker run -it -p 5000:5000 --name ubuntu-flask-env ubuntu-flask-dev \/bin\/bash<\/code><\/pre>\r\n<\/div>\r\n<p>&nbsp;<\/p>\n\n<h2>\u30b9\u30c6\u30c3\u30d74: VSCode\u3067\u306e\u30b3\u30f3\u30c6\u30ca\u30a2\u30af\u30bb\u30b9<\/h2>\n<p><strong><span style=\"font-family: arial, helvetica, sans-serif\">VSCode\u3092\u4f7f\u7528\u3057\u3066Docker\u30b3\u30f3\u30c6\u30ca\u306b\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002<\/span><\/strong><\/p>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\"><strong>1.VSCode\u3092\u958b\u304f<\/strong>: VSCode\u3092\u8d77\u52d5\u3057\u3001Dev Containers \u62e1\u5f35\u6a5f\u80fd\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/span><span style=\"font-family: arial, helvetica, sans-serif\"><\/span><\/p>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\"><strong>2.\u30ea\u30e2\u30fc\u30c8\u30a8\u30af\u30b9\u30d7\u30ed\u30fc\u30e9\u3092\u958b\u304f<\/strong>: VSCode\u306e\u5de6\u30b5\u30a4\u30c9\u30d0\u30fc\u306b\u3042\u308b\u300c\u30ea\u30e2\u30fc\u30c8\u30a8\u30af\u30b9\u30d7\u30ed\u30fc\u30e9\u300d\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/span><\/p>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\"><strong>3.\u30b3\u30f3\u30c6\u30ca\u306b\u63a5\u7d9a\u3059\u308b<\/strong>: \u300c\u958b\u767a\u30b3\u30f3\u30c6\u30ca\u300d\u30bb\u30af\u30b7\u30e7\u30f3\u306e\u300cubuntu-flask-env\u300d\u30b3\u30f3\u30c6\u30ca\u3092\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3001\u300cAttach to Container\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/span><\/p>\r\n<p><img decoding=\"async\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-15.06.09.png\" alt=\"\" width=\"510\" height=\"130\" class=\"alignnone size-full wp-image-4068\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-15.06.09.png 510w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-15.06.09-300x76.png 300w\" sizes=\"(max-width: 510px) 100vw, 510px\" \/><\/p>\r\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u3053\u308c\u3067\u3001VSCode\u304b\u3089\u76f4\u63a5Docker\u30b3\u30f3\u30c6\u30ca\u5185\u306ePython\u958b\u767a\u74b0\u5883\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002<\/span><\/p>\r\n<p><img decoding=\"async\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-15.01.28.png\" alt=\"\" width=\"908\" height=\"42\" class=\"alignnone size-full wp-image-4069\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-15.01.28.png 908w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-15.01.28-300x14.png 300w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-15.01.28-768x36.png 768w\" sizes=\"(max-width: 908px) 100vw, 908px\" \/><\/p>\r\n<p><!-- notionvc: 8b2e124c-e04e-403d-91f8-e7e6977f3b97 --><\/p>\n\n<h2>\u30b9\u30c6\u30c3\u30d75: Flask\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u4f5c\u6210<\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u30b3\u30f3\u30c6\u30ca\u5185\u3067\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3001<span data-token-index=\"1\" class=\"notion-enable-hover\">app.py<\/span>\u30d5\u30a1\u30a4\u30eb\u306b\u7c21\u5358\u306a\u30a2\u30d7\u30ea\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/span><!-- notionvc: 9f99879d-1980-4243-84cb-01d3ef54735f --><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>echo \"from flask import Flask\r\napp = Flask(__name__)\r\n\r\n@app.route('\/')\r\ndef hello_world():\r\nreturn 'Hello, World!'\r\n\r\nif __name__ == '__main__':\r\napp.run(host='0.0.0.0', port=5000)\" &gt; app.py<\/code><\/pre>\r\n<\/div>\r\n<p><img decoding=\"async\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.54.47.png\" alt=\"\" width=\"1214\" height=\"446\" class=\"alignnone size-full wp-image-4070\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.54.47.png 1214w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.54.47-300x110.png 300w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.54.47-1024x376.png 1024w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.54.47-768x282.png 768w\" sizes=\"(max-width: 1214px) 100vw, 1214px\" \/><\/p>\r\n<p>&nbsp;<\/p>\n\n<h2>\u30b9\u30c6\u30c3\u30d76: Flask\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u884c<\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067Flask\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/span><\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>python3 app.py<\/code><\/pre>\r\n<\/div>\n\n<h2>\u30b9\u30c6\u30c3\u30d77: Web\u30d6\u30e9\u30a6\u30b6\u3067\u30a2\u30af\u30bb\u30b9<\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u30ed\u30fc\u30ab\u30eb\u30de\u30b7\u30f3\u3092Web\u30d6\u30e9\u30a6\u30b6\u3067 <span data-token-index=\"1\" class=\"notion-enable-hover\" style=\"color: #ff0000\">http:\/\/localhost:5000 <\/span>\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3001\u300cHello, World!\u300d\u304c\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/span><!-- notionvc: 0fb9b9e9-885a-4199-bcd4-289508269cd5 --><\/p>\r\n<p><img decoding=\"async\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.55.28.png\" alt=\"\" width=\"562\" height=\"182\" class=\"alignnone size-full wp-image-4071\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.55.28.png 562w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/11\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2023-11-15-14.55.28-300x97.png 300w\" sizes=\"(max-width: 562px) 100vw, 562px\" \/><\/p>\n\n<h2>\u307e\u3068\u3081<\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif\">\u3053\u306e\u624b\u9806\u306b\u3088\u308a\u3001Docker\u3092\u4f7f\u7528\u3057\u3066Flask\u958b\u767a\u74b0\u5883\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3057\u3001Flask\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3057\u3066\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002VSCode\u306eDev Containers\u62e1\u5f35\u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u958b\u767a\u74b0\u5883\u3078\u306e\u30a2\u30af\u30bb\u30b9\u304c\u5bb9\u6613\u306b\u306a\u308a\u3001\u52b9\u7387\u7684\u306aWeb\u958b\u767a\u304c\u884c\u3048\u307e\u3059\u3002<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001Flask\u30a2\u30d7\u30ea\u958b\u767a\u306b\u5fc5\u8981\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u542b\u3093\u3060Docker\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3001\u305d\u308c\u3092\u57fa\u306bUbuntu\u30d9\u30fc\u30b9\u306eFlask\u958b\u767a\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002 \u306f\u3058\u3081\u306b \u4eca\u56de\u306e\u8a18\u4e8b\u3067\u306f\u3001Python\u30d5\u30ec [&hellip;]<\/p>\n","protected":false},"author":87,"featured_media":4073,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","swell_btn_cv_data":"","footnotes":"","_wp_rev_ctl_limit":""},"categories":[1248],"tags":[511,517,515,331,514,510,444],"class_list":["post-4065","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-use-case","tag-docker","tag-flask","tag-linux","tag-python","tag-ubuntu","tag-510","tag-444"],"_links":{"self":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts\/4065","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/users\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/comments?post=4065"}],"version-history":[{"count":0,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts\/4065\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/media\/4073"}],"wp:attachment":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/media?parent=4065"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/categories?post=4065"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/tags?post=4065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}