{"id":7305,"date":"2025-02-21T23:51:23","date_gmt":"2025-02-21T14:51:23","guid":{"rendered":"https:\/\/pecos.ddns.net\/wordpress\/?p=7305"},"modified":"2025-02-21T23:51:23","modified_gmt":"2025-02-21T14:51:23","slug":"emscripten-2","status":"publish","type":"post","link":"https:\/\/pecos.ddns.net\/wordpress\/?p=7305","title":{"rendered":"emscripten #2"},"content":{"rendered":"<p><a href=\"https:\/\/thinkridge.com\/modules\/xpwiki\/?%E6%8A%80%E8%A1%93%E7%B3%BB%E5%82%99%E5%BF%98%E9%8C%B2%2FDocker%2FEmscripten\" target=\"_blank\">\u3053\u3053\u3092\u53c2\u8003<\/a>\u306b\u3001ssh\u3067\u76f4\u63a5\u30b3\u30f3\u30c6\u30ca\u306b\u5165\u308c\u308b\u3088\u3046\u306b\u6539\u826f\u3002vscode\u306b<a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.wasm-dwarf-debugging\" target=\"_blank\">DWARF plugin<\/a>\u3092\u5165\u308c\u3066\u30ea\u30e2\u30fc\u30c8\u3067\u30b3\u30f3\u30c6\u30ca\u306b\u5165\u308a\u30c7\u30d0\u30c3\u30b0\u3059\u308b\u3068C\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u30ec\u30d9\u30eb\u3067\u30d6\u30ec\u30fc\u30af\u30dd\u30a4\u30f3\u30c8\u304c\u52b9\u304f\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<pre class=\"brush: bash; highlight: [13]; title: Dockerfile; notranslate\" title=\"Dockerfile\">\r\nFROM ubuntu:24.04\r\nRUN apt update \\\r\n &amp;&amp; apt -y upgrade \\\r\n &amp;&amp; apt clean &amp;&amp; rm -rf \/var\/lib\/apt\/lists\/*\r\nRUN apt update \\\r\n &amp;&amp; apt -y install tzdata \\\r\n &amp;&amp; apt clean &amp;&amp; rm -rf \/var\/lib\/apt\/lists\/*\r\nENV TZ=Asia\/Tokyo\r\nRUN apt update \\\r\n &amp;&amp; apt -y install --no-install-recommends build-essential \\\r\n &amp;&amp; apt clean &amp;&amp; rm -rf \/var\/lib\/apt\/lists\/*\r\nRUN apt update \\\r\n &amp;&amp; apt -y install git cmake wget python3 openssh-server vim \\\r\n &amp;&amp; apt clean &amp;&amp; rm -rf \/var\/lib\/apt\/lists\/*\r\n# emscripten ##########################\r\nARG EMSDKDIR=\/opt\/emsdk\r\nRUN git clone https:\/\/github.com\/emscripten-core\/emsdk.git ${EMSDKDIR}\r\nRUN cd ${EMSDKDIR} \\\r\n &amp;&amp; .\/emsdk install latest \\\r\n &amp;&amp; .\/emsdk activate latest\r\nRUN echo &quot;source ${EMSDKDIR}\/emsdk_env.sh&quot; &gt;&gt; ~\/.bash_profile\r\n# sshd ################################\r\nRUN mkdir -p \/var\/run\/sshd\r\nRUN echo &#039;root:password&#039; | chpasswd\r\nRUN sed -i &#039;s\/#PermitRootLogin prohibit-password\/PermitRootLogin yes\/&#039; \/etc\/ssh\/sshd_config\r\nRUN sed -i &#039;s\/#PasswordAuthentication no\/PasswordAuthentication yes\/&#039; \/etc\/ssh\/sshd_config\r\nRUN sed &#039;s@session\\s*required\\s*pam_loginuid.so@session optional pam_loginuid.so@g&#039; -i \/etc\/pam.d\/sshd\r\nENV NOTVISIBLE &quot;in users profile&quot;\r\nRUN echo &quot;export VISIBLE=now&quot; &gt;&gt; \/etc\/profile\r\nEXPOSE 22\r\nCMD &#x5B;&quot;\/usr\/sbin\/sshd&quot;, &quot;-D&quot;]\r\n<\/pre>\n<pre class=\"brush: xml; highlight: [13]; title: compose.yml; notranslate\" title=\"compose.yml\">\r\nservices:\r\n  emsdk:\r\n    build: .\/\r\n    extra_hosts:\r\n      - &quot;host.docker.internal:192.168.10.180&quot;\r\n    working_dir: \/root\/src\r\n    tty: true\r\n    stdin_open: true\r\n    volumes:\r\n      - .\/src:\/root\/src\r\n    ports:\r\n      - 8080:8080\r\n      - 2222:22\r\n      - 9223:9223\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u3053\u3092\u53c2\u8003\u306b\u3001ssh\u3067\u76f4\u63a5\u30b3\u30f3\u30c6\u30ca\u306b\u5165\u308c\u308b\u3088\u3046\u306b\u6539\u826f\u3002vscode\u306bDWARF plugin\u3092\u5165\u308c\u3066\u30ea\u30e2\u30fc\u30c8\u3067\u30b3\u30f3\u30c6\u30ca\u306b\u5165\u308a\u30c7\u30d0\u30c3\u30b0\u3059\u308b\u3068C\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u30ec\u30d9\u30eb\u3067\u30d6\u30ec\u30fc\u30af\u30dd\u30a4\u30f3\u30c8\u304c\u52b9\u304f\u3088\u3046\u306b\u306a\u3063\u305f\u3002 FROM ubunt [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,5],"tags":[],"class_list":["post-7305","post","type-post","status-publish","format-standard","hentry","category-programming","category-5"],"_links":{"self":[{"href":"https:\/\/pecos.ddns.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pecos.ddns.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pecos.ddns.net\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pecos.ddns.net\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pecos.ddns.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7305"}],"version-history":[{"count":3,"href":"https:\/\/pecos.ddns.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7305\/revisions"}],"predecessor-version":[{"id":7308,"href":"https:\/\/pecos.ddns.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7305\/revisions\/7308"}],"wp:attachment":[{"href":"https:\/\/pecos.ddns.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pecos.ddns.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pecos.ddns.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}