jvburnes / node9

A portable hybrid distributed OS based on Inferno, LuaJIT and Libuv
MIT License
408 stars 32 forks source link

Adding a Dockerfile and starting publishing node9 runtime #14

Open rvs opened 3 years ago

rvs commented 3 years ago

This PR is a rough cut of publishing Node9 into Dockerhub under the name node9/runtime. This will happen on every push into the master and will enable us to do things like:

$ docker run -it node9/runtime
node9 First Edition (20150610), build: 1609207059  main (pid=1)
Tue Dec 29 02:26:23 2020  node9/kernel: initializing terminal
Tue Dec 29 02:26:23 2020  node9/kernel: loading
Tue Dec 29 02:26:23 2020  node9/kernel: initializing namespace
Tue Dec 29 02:26:23 2020  node9/kernel: binding standard streams
Tue Dec 29 02:26:23 2020  node9/kernel: initializing host environment
Tue Dec 29 02:26:23 2020  node9/kernel: accepting requests
Tue Dec 29 02:26:23 2020  node9/kernel: starting luaspace ...
Tue Dec 29 02:26:23 2020  signals set
(/appl/sh): started
[the time on the console is Tue Dec 29 02:26:23 2020]
;

Or, more interestingly, things like:

$ docker run -it -v `pwd`/fs/appl:/fs/user node9/runtime
node9 First Edition (20150610), build: 1609207059  main (pid=1)
Tue Dec 29 02:26:23 2020  node9/kernel: initializing terminal
Tue Dec 29 02:26:23 2020  node9/kernel: loading
Tue Dec 29 02:26:23 2020  node9/kernel: initializing namespace
Tue Dec 29 02:26:23 2020  node9/kernel: binding standard streams
Tue Dec 29 02:26:23 2020  node9/kernel: initializing host environment
Tue Dec 29 02:26:23 2020  node9/kernel: accepting requests
Tue Dec 29 02:26:23 2020  node9/kernel: starting luaspace ...
Tue Dec 29 02:26:23 2020  signals set
(/appl/sh): started
[the time on the console is Tue Dec 29 02:26:23 2020]
; ls /user
--rw-r--r--         root         root         2193   Fri Dec 25 03:24:23 2020 apptest.lua
--rw-r--r--         root         root         2761   Fri Dec 25 03:24:23 2020 export.lua
--rw-r--r--         root         root         5910   Fri Dec 25 03:24:23 2020 listen.lua
--rw-r--r--         root         root          758   Fri Dec 25 03:24:22 2020 ls.lua
--rw-r--r--         root         root         8664   Fri Dec 25 03:24:22 2020 mount.lua
--rw-r--r--         root         root        10715   Sat Dec 26 02:08:46 2020 sh.lua
--rw-r--r--         root         root         6128   Fri Dec 25 03:24:22 2020 styxlisten.lua
--rw-r--r--         root         root        13668   Fri Dec 25 03:24:22 2020 syscall.lua
--rw-r--r--         root         root        23730   Fri Dec 25 03:24:22 2020 test.lua
--rw-r--r--         root         root          849   Fri Dec 25 03:24:22 2020 unmount.lua

Note that the usual docker run -it node9/runtime -h will work as expected as well and will print help message (and the same applies to all the other command line arguments that one would pass to node9 like -t for example).

rvs commented 3 years ago

Btw, @jvburnes if you're curious how our first test run went -- please take a look here https://github.com/rvs/node9/runs/1619959043

If you like it -- you'll have to add two secrets to your GitHub repo so that action can push to DockerHUB as shown above. Please respond with your public GPG key so I can send those to you privately.

rvs commented 3 years ago

Happy New Year @jvburnes! Any thoughts on whether this could be merged (I also still need your DockerHUB ID for the org).