logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
commit: 5ff45277bedd9206ca0175e73d94965e41f3ce69
parent b25fdc22bc324ba4d6c27b7a6711686dfac2aa8e
Author: Michael Forney <mforney@mforney.org>
Date:   Sat, 16 Mar 2019 21:59:23 -0700

Add experimental Dockerfile

Diffstat:

A.dockerignore1+
ADockerfile25+++++++++++++++++++++++++
Adocker/config.lua13+++++++++++++
Adocker/etc/.perms2++
Adocker/etc/doas.conf2++
Adocker/etc/group9+++++++++
Adocker/etc/kshrc1+
Adocker/etc/passwd4++++
Adocker/etc/profile14++++++++++++++
Adocker/etc/shadow4++++
Adocker/etc/ssl/cert.pem2++
Adocker/etc/velox.conf78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12 files changed, 155 insertions(+), 0 deletions(-)

diff --git a/.dockerignore b/.dockerignore @@ -0,0 +1 @@ +out diff --git a/Dockerfile b/Dockerfile @@ -0,0 +1,25 @@ +FROM alpine:edge +RUN apk add --no-cache alpine-sdk bison libarchive-tools linux-headers lua5.2 nasm ncurses ninja tzdata wayland-dev + +COPY . /oasis +WORKDIR oasis +COPY docker/config.lua . + +ENV PATH $PATH:/oasis/out/pkg/texi2mdoc +ENV PAXREAD bsdtar -xf - +RUN git config --global user.name oasis && \ + git config --global user.email oasis && \ + lua5.2 ./setup.lua && \ + ninja out/pkg/texi2mdoc/texi2mdoc && \ + ninja && \ + git -C out/root.git --work-tree=$PWD read-tree -u --prefix=root/ tree + +FROM scratch +COPY --from=0 /oasis/root / +COPY docker/etc /etc +RUN /libexec/applyperms -d / && \ + /libexec/applyperms -d /etc && \ + makewhatis /share/man + +ENV XDG_RUNTIME_DIR /tmp +CMD ksh -l diff --git a/docker/config.lua b/docker/config.lua @@ -0,0 +1,13 @@ +local sets = dofile 'sets.lua' +return { + builddir='out', + fs={ + { + sets.core, sets.extra, sets.desktop, sets.media, + exclude={'^include/', '^lib/.*%.a$'}, + }, + }, + target={toolchain='default', cflags='-O2 -pipe -U _FORTIFY_SOURCE', cxxflags='', ldflags='-s -static', pie=true}, + host={toolchain='default', cflags='-O2 -pipe', cxxflags='', ldflags='-s'}, + repo={path='$builddir/root.git', flags='--bare', tag='tree', branch='oasis'}, +} diff --git a/docker/etc/.perms b/docker/etc/.perms @@ -0,0 +1,2 @@ +100400 doas.conf +100600 shadow diff --git a/docker/etc/doas.conf b/docker/etc/doas.conf @@ -0,0 +1,2 @@ +permit persist setenv { ENV=/etc/kshrc PERP_BASE=/etc/perp PS1 SSH_CONNECTION } :admin +permit nopass keepenv root diff --git a/docker/etc/group b/docker/etc/group @@ -0,0 +1,9 @@ +root:x:0:root +admin:x:1:root +tty:x:2: +disk:x:3: +audio:x:4: +video:x:5: +log:x:100: +sshd:x:101: +ntpd:x:102: diff --git a/docker/etc/kshrc b/docker/etc/kshrc @@ -0,0 +1 @@ +set -o emacs diff --git a/docker/etc/passwd b/docker/etc/passwd @@ -0,0 +1,4 @@ +root:x:0:0:root:/root:/bin/ksh +log:x:100:100:Logging daemon:/var/empty:/bin/false +sshd:x:101:101:SSH daemon:/var/empty:/bin/false +ntpd:x:102:102:NTP daemon:/var/empty:/bin/false diff --git a/docker/etc/profile b/docker/etc/profile @@ -0,0 +1,14 @@ +umask 022 + +export ENV=/etc/kshrc +export PATH=/bin +export MANPATH=/share/man +export PERP_BASE=/etc/perp +export PAGER=less +export EDITOR=vis +export PS1='\$ ' +export XDG_RUNTIME_DIR=/tmp + +if [ -n "$SSH_CONNECTION" ] ; then + PS1=$(hostname)$PS1 +fi diff --git a/docker/etc/shadow b/docker/etc/shadow @@ -0,0 +1,4 @@ +root:::::::: +log:!::::::: +sshd:!::::::: +ntpd:!::::::: diff --git a/docker/etc/ssl/cert.pem b/docker/etc/ssl/cert.pem @@ -0,0 +1 @@ +../../share/libressl/cert.pem +\ No newline at end of file diff --git a/docker/etc/velox.conf b/docker/etc/velox.conf @@ -0,0 +1,78 @@ +# velox.conf + +# property value +set mod logo +set window.border_color_active 0xff338833 +set window.border_color_inactive 0xff888888 +set window.border_width 2 + +set tag.1.name 1 +set tag.2.name 2 +set tag.3.name 3 +set tag.4.name 4 +set tag.5.name 5 +set tag.6.name 6 +set tag.7.name 7 +set tag.8.name 8 +set tag.9.name 9 + +# name type arguments +action spawn_terminal spawn exec st +action spawn_run spawn exec dmenu_run -b +action spawn_browser spawn exec netsurf + +# key modifiers action +key j mod focus_next +key k mod focus_prev +key Return mod zoom +key space mod layout_next +key Tab mod previous_tags +key q mod,shift quit + +key g mod window.switch_layer +key c mod,shift window.close + +key h mod tall.decrease_master_size +key l mod tall.increase_master_size +key h mod,shift tall.increase_num_masters +key l mod,shift tall.decrease_num_masters +key h mod,ctrl tall.increase_num_columns +key l mod,ctrl tall.decrease_num_columns + +key Return mod,shift spawn_terminal +key r mod spawn_run +key b mod spawn_browser + +key 1 mod tag.1.activate +key 2 mod tag.2.activate +key 3 mod tag.3.activate +key 4 mod tag.4.activate +key 5 mod tag.5.activate +key 6 mod tag.6.activate +key 7 mod tag.7.activate +key 8 mod tag.8.activate +key 9 mod tag.9.activate + +key 1 mod,ctrl tag.1.toggle +key 2 mod,ctrl tag.2.toggle +key 3 mod,ctrl tag.3.toggle +key 4 mod,ctrl tag.4.toggle +key 5 mod,ctrl tag.5.toggle +key 6 mod,ctrl tag.6.toggle +key 7 mod,ctrl tag.7.toggle +key 8 mod,ctrl tag.8.toggle +key 9 mod,ctrl tag.9.toggle + +key 1 mod,shift tag.1.apply +key 2 mod,shift tag.2.apply +key 3 mod,shift tag.3.apply +key 4 mod,shift tag.4.apply +key 5 mod,shift tag.5.apply +key 6 mod,shift tag.6.apply +key 7 mod,shift tag.7.apply +key 8 mod,shift tag.8.apply +key 9 mod,shift tag.9.apply + +button left mod window.begin_move:window.end_move +button left mod,shift window.begin_resize:window.end_resize +