commit: 5ff45277bedd9206ca0175e73d94965e41f3ce69
parent b25fdc22bc324ba4d6c27b7a6711686dfac2aa8e
Author: Michael Forney <mforney@mforney.org>
Date: Sat, 16 Mar 2019 21:59:23 -0700
Add experimental Dockerfile
Diffstat:
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
+