{"id":4420,"date":"2022-10-29T08:51:24","date_gmt":"2022-10-28T23:51:24","guid":{"rendered":"https:\/\/blog.wsd.sh\/?p=4420"},"modified":"2022-10-30T06:21:13","modified_gmt":"2022-10-29T21:21:13","slug":"docker-deno-install","status":"publish","type":"post","link":"https:\/\/blog.wsd.sh\/?p=4420","title":{"rendered":"<small>Docker: Deno install and set timezone<\/small>"},"content":{"rendered":"<p>1. Reference<br \/>\n<a href=\"https:\/\/zenn.dev\/shinkano\/articles\/280518001ad0d6\">https:\/\/zenn.dev\/shinkano\/articles\/280518001ad0d6<\/a><\/p>\n<p>2. Create directory<\/p>\n<pre>\r\n$ mkdir Deno\r\n$ cd Deno\r\n<\/pre>\n<p>3. Create Dockerfile<\/p>\n<pre>\r\n$ vi Dockerfile\r\n$ cat Dockerfile\r\nFROM debian:stable-slim\r\n\r\nWORKDIR \/var\/www\/html\r\n\r\nRUN apt-get -qq update \\\r\n  && apt-get -qq -y install curl zip unzip \\\r\n  && curl -fsSL https:\/\/deno.land\/x\/install\/install.sh | sh \\\r\n  && apt-get -qq remove curl zip unzip \\\r\n  && apt-get -qq remove --purge -y curl zip unzip \\\r\n  && apt-get -qq -y autoremove \\\r\n  && apt-get -qq clean \\\r\n  && echo 'export DENO_INSTALL=\"\/root\/.deno\"' >> ~\/.bash_profile \\\r\n  && echo 'export PATH=\"$DENO_INSTALL\/bin:$PATH\"' >> ~\/.bash_profile\r\n\r\nCMD [\"\/bin\/bash\", \"-c\", \"source ~\/.bash_profile && bash\"]\r\n<\/pre>\n<p>4. Build image<\/p>\n<pre>\r\n$ docker build .\/ -t deno-docker\r\n<\/pre>\n<p>5. Run docker container<\/p>\n<pre>\r\n$ docker container run -it \\\r\n       --rm \\\r\n       -p 8080:8080 \\\r\n       --mount src=`pwd`,target=\/var\/www\/html,type=bind \\\r\n       --disable-content-trust \\\r\n       deno-docker\r\n\r\nroot@85d751a4ee15:\/var\/www\/html# \r\n<\/pre>\n<p>6. Install vim in docker<\/p>\n<pre>\r\n# apt-get update\r\n# apt-get install vim\r\n<\/pre>\n<p>7. Create main.ts<br \/>\n&#8211; Can not copy &#038; paste from clipbord to vim file<br \/>\n&#8211; So i have to manually enter<\/p>\n<pre>\r\n# vi main.ts\r\n# cat main.ts\r\nimport { serve } from \"https:\/\/deno.land\/std@0.50.0\/http\/server.ts\";\r\n\r\nconst s = serve({ port: 8080 }); \/\/ \u30b3\u30f3\u30c6\u30ca\u306b\u6307\u5b9a\u3057\u305f\u30dd\u30fc\u30c8\r\nconsole.log(\"http:\/\/localhost:8080\/\");\r\n\r\nfor await (const req of s) {\r\n  req.respond({ body: \"&lt;h1>Hello Deno&lt;\/h1>\\n\" });\r\n}\r\n<\/pre>\n<p>8. Execute deno<\/p>\n<pre>\r\n# deno run --allow-net main.ts\r\n<\/pre>\n<p>9. Check in browser<br \/>\n<img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/20221029-1-300x110.png\" alt=\"\" width=\"300\" height=\"110\" class=\"alignnone size-medium wp-image-4423\" srcset=\"https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/20221029-1-300x110.png 300w, https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/20221029-1.png 541w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>10. Check docker ps<\/p>\n<pre>\r\n$ docker ps\r\nCONTAINER ID   IMAGE           COMMAND                  CREATED          STATUS          PORTS                                           NAMES\r\n85d751a4ee15   deno-docker     \"\/bin\/bash -c 'sourc\u2026\"   54 minutes ago   Up 54 minutes   0.0.0.0:8080->8080\/tcp, :::8080->8080\/tcp       inspiring_hodgkin\r\n<\/pre>\n<p>11. Check directory and file<\/p>\n<pre>\r\n~\/Deno$ ls -lai\r\ntotal 20\r\n10365241 drwxrwxr-x  2 wsd01 wsd01 4096 Oct 29 09:48 .\r\n10223618 drwxr-x--- 40 wsd01 wsd01 4096 Oct 29 08:07 ..\r\n10365226 -rw-rw-r--  1 wsd01 wsd01  697 Oct 29 08:16 docker-compose.yml\r\n10365247 -rw-rw-r--  1 wsd01 wsd01  526 Oct 29 08:44 Dockerfile\r\n10365085 -rw-r--r--  1 root  root   222 Oct 29 09:48 main.ts\r\n<\/pre>\n<pre>\r\n\/var\/www\/html# ls -lai\r\ntotal 20\r\n10365241 drwxrwxr-x 2 1000 1000 4096 Oct 29 00:48 .\r\n 4064812 drwxr-xr-x 3 root root 4096 Oct 28 23:44 ..\r\n10365247 -rw-rw-r-- 1 1000 1000  526 Oct 28 23:44 Dockerfile\r\n10365226 -rw-rw-r-- 1 1000 1000  697 Oct 28 23:16 docker-compose.yml\r\n10365085 -rw-r--r-- 1 root root  222 Oct 29 00:48 main.ts\r\n<\/pre>\n<p>12. Set timezone<br \/>\n(1) tzselect<br \/>\n&#8211; select japan <\/p>\n<pre>\r\n\/var\/www\/html# tzselect\r\n<\/pre>\n<p>(2) tzconfig<br \/>\n&#8211; select tokyo<\/p>\n<pre>\r\n\/var\/www\/html# tzconfig\r\n\/var\/www\/html# date\r\nSat Oct 29 10:04:07 JST 2022\r\n\/var\/www\/html# ls -l\r\ntotal 12\r\n-rw-rw-r-- 1 1000 1000 526 Oct 29 08:44 Dockerfile\r\n-rw-rw-r-- 1 1000 1000 697 Oct 29 08:16 docker-compose.yml\r\n-rw-r--r-- 1 root root 222 Oct 29 09:48 main.ts\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1. Reference https:\/\/zenn.dev\/shinkano\/articles\/280518001ad0d6 2. Create directory $ mkdir Deno $ cd Deno 3. C&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=\/wp\/v2\/posts\/4420"}],"collection":[{"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4420"}],"version-history":[{"count":19,"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=\/wp\/v2\/posts\/4420\/revisions"}],"predecessor-version":[{"id":4440,"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=\/wp\/v2\/posts\/4420\/revisions\/4440"}],"wp:attachment":[{"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4420"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}