loft-sh / dockerless

Mozilla Public License 2.0
8 stars 3 forks source link

How to use it? #13

Open s1gnate-sync opened 12 months ago

s1gnate-sync commented 12 months ago

Right now executing command build is very dangerous as it deletes huge chunks of rootfs, try to run it outside of isolated rootfs and your os is ruined. How it supposed to work?

localhost:~/dockerless/alpine$ tar xvf /work/rootfs-images/alpine.edge.tar.gz .
./
./opt/
./sys/
./sbin/
./sbin/blkid
./sbin/iproute
./sbin/iplink
./sbin/arp
./sbin/route
./sbin/raidautorun
./sbin/ifenslave
./sbin/halt
./sbin/syslogd
./sbin/sysctl
./sbin/zcip
./sbin/loadkmap
./sbin/udhcpc
./sbin/swapoff
./sbin/acpid
./sbin/inotifyd
./sbin/getty
./sbin/ldconfig
./sbin/fsck
./sbin/ifup
./sbin/hwclock
./sbin/init
./sbin/setconsole
./sbin/mkswap
./sbin/modprobe
./sbin/rmmod
./sbin/klogd
./sbin/ipneigh
./sbin/ipaddr
./sbin/fbsplash
./sbin/ip
./sbin/swapon
./sbin/vconfig
./sbin/fdisk
./sbin/nameif
./sbin/findfs
./sbin/mkdosfs
./sbin/nologin
./sbin/poweroff
./sbin/slattach
./sbin/apk
./sbin/depmod
./sbin/lsmod
./sbin/ifdown
./sbin/mdev
./sbin/logread
./sbin/watchdog
./sbin/losetup
./sbin/mkfs.vfat
./sbin/insmod
./sbin/ifconfig
./sbin/pivot_root
./sbin/iprule
./sbin/reboot
./sbin/switch_root
./sbin/iptunnel
./sbin/fstrim
./sbin/adjtimex
./sbin/blockdev
./sbin/tunctl
./sbin/modinfo
./tmp/
./usr/
./usr/sbin/
./usr/sbin/partprobe
./usr/sbin/nandwrite
./usr/sbin/chroot
./usr/sbin/brctl
./usr/sbin/rdev
./usr/sbin/setlogcons
./usr/sbin/readahead
./usr/sbin/sendmail
./usr/sbin/remove-shell
./usr/sbin/rfkill
./usr/sbin/fbset
./usr/sbin/killall5
./usr/sbin/nbd-client
./usr/sbin/deluser
./usr/sbin/arping
./usr/sbin/ntpd
./usr/sbin/rdate
./usr/sbin/loadfont
./usr/sbin/addgroup
./usr/sbin/setfont
./usr/sbin/nanddump
./usr/sbin/ether-wake
./usr/sbin/adduser
./usr/sbin/crond
./usr/sbin/delgroup
./usr/sbin/add-shell
./usr/sbin/chpasswd
./usr/bin/
./usr/bin/setsid
./usr/bin/ldd
./usr/bin/deallocvt
./usr/bin/whoami
./usr/bin/du
./usr/bin/pmap
./usr/bin/last
./usr/bin/ipcrm
./usr/bin/cpio
./usr/bin/basename
./usr/bin/factor
./usr/bin/pscan
./usr/bin/free
./usr/bin/nmeter
./usr/bin/top
./usr/bin/readlink
./usr/bin/pgrep
./usr/bin/pkill
./usr/bin/nc
./usr/bin/flock
./usr/bin/xzcat
./usr/bin/sum
./usr/bin/vlock
./usr/bin/unlink
./usr/bin/beep
./usr/bin/bc
./usr/bin/groups
./usr/bin/tree
./usr/bin/unlzma
./usr/bin/expr
./usr/bin/sort
./usr/bin/uptime
./usr/bin/diff
./usr/bin/chvt
./usr/bin/which
./usr/bin/sha3sum
./usr/bin/less
./usr/bin/uuencode
./usr/bin/comm
./usr/bin/head
./usr/bin/install
./usr/bin/cksum
./usr/bin/paste
./usr/bin/nohup
./usr/bin/lsusb
./usr/bin/dos2unix
./usr/bin/yes
./usr/bin/expand
./usr/bin/sha512sum
./usr/bin/cmp
./usr/bin/fold
./usr/bin/unexpand
./usr/bin/hostid
./usr/bin/xxd
./usr/bin/who
./usr/bin/eject
./usr/bin/truncate
./usr/bin/seq
./usr/bin/cal
./usr/bin/find
./usr/bin/test
./usr/bin/lsof
./usr/bin/[[
./usr/bin/volname
./usr/bin/strings
./usr/bin/traceroute6
./usr/bin/awk
./usr/bin/id
./usr/bin/fallocate
./usr/bin/tr
./usr/bin/openvt
./usr/bin/whois
./usr/bin/unxz
./usr/bin/lzopcat
./usr/bin/shred
./usr/bin/[
./usr/bin/od
./usr/bin/uudecode
./usr/bin/udhcpc6
./usr/bin/mkpasswd
./usr/bin/iconv
./usr/bin/bunzip2
./usr/bin/microcom
./usr/bin/nsenter
./usr/bin/scanelf
./usr/bin/passwd
./usr/bin/renice
./usr/bin/pstree
./usr/bin/blkdiscard
./usr/bin/bzip2
./usr/bin/unshare
./usr/bin/wc
./usr/bin/env
./usr/bin/md5sum
./usr/bin/clear
./usr/bin/pwdx
./usr/bin/realpath
./usr/bin/unzip
./usr/bin/lzma
./usr/bin/hexdump
./usr/bin/hd
./usr/bin/nproc
./usr/bin/cut
./usr/bin/nslookup
./usr/bin/resize
./usr/bin/tail
./usr/bin/getent
./usr/bin/cryptpw
./usr/bin/sha1sum
./usr/bin/unix2dos
./usr/bin/ttysize
./usr/bin/sha256sum
./usr/bin/ipcs
./usr/bin/crontab
./usr/bin/logger
./usr/bin/shuf
./usr/bin/tty
./usr/bin/time
./usr/bin/killall
./usr/bin/unlzop
./usr/bin/bzcat
./usr/bin/mesg
./usr/bin/dirname
./usr/bin/nl
./usr/bin/split
./usr/bin/ssl_client
./usr/bin/traceroute
./usr/bin/timeout
./usr/bin/tee
./usr/bin/wget
./usr/bin/reset
./usr/bin/getconf
./usr/bin/xargs
./usr/bin/uniq
./usr/bin/showkey
./usr/bin/mkfifo
./usr/bin/dc
./usr/bin/tac
./usr/bin/fuser
./usr/bin/vi
./usr/bin/printf
./usr/bin/setkeycodes
./usr/bin/lzcat
./usr/local/
./usr/local/bin/
./usr/local/lib/
./usr/local/share/
./usr/lib/
./usr/lib/ossl-modules/
./usr/lib/ossl-modules/legacy.so
./usr/lib/libssl.so.3
./usr/lib/modules-load.d/
./usr/lib/engines-3/
./usr/lib/engines-3/loader_attic.so
./usr/lib/engines-3/afalg.so
./usr/lib/engines-3/capi.so
./usr/lib/engines-3/padlock.so
./usr/lib/libcrypto.so.3
./usr/share/
./usr/share/udhcpc/
./usr/share/udhcpc/default.script
./usr/share/man/
./usr/share/misc/
./usr/share/apk/
./usr/share/apk/keys/
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub
./usr/share/apk/keys/armhf/
./usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub
./usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub
./usr/share/apk/keys/armv7/
./usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub
./usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub
./usr/share/apk/keys/s390x/
./usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub
./usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub
./usr/share/apk/keys/ppc64le/
./usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub
./usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub
./usr/share/apk/keys/aarch64/
./usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub
./usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub
./usr/share/apk/keys/x86/
./usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub
./usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub
./usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub
./usr/share/apk/keys/riscv64/
./usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub
./usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub
./usr/share/apk/keys/mips64/
./usr/share/apk/keys/mips64/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub
./usr/share/apk/keys/x86_64/
./usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub
./usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
./usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub
./usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub
./media/
./media/floppy/
./media/usb/
./media/cdrom/
./proc/
./srv/
./mnt/
./bin/
./bin/hostname
./bin/ln
./bin/ash
./bin/busybox
./bin/chattr
./bin/setpriv
./bin/chown
./bin/fatattr
./bin/df
./bin/arch
./bin/grep
./bin/gunzip
./bin/pwd
./bin/umount
./bin/gzip
./bin/cp
./bin/zcat
./bin/dd
./bin/mknod
./bin/sync
./bin/linux32
./bin/fsync
./bin/ls
./bin/mpstat
./bin/sleep
./bin/mktemp
./bin/chmod
./bin/bbconfig
./bin/printenv
./bin/ping6
./bin/dmesg
./bin/sed
./bin/stat
./bin/dnsdomainname
./bin/link
./bin/netstat
./bin/rev
./bin/stty
./bin/false
./bin/tar
./bin/run-parts
./bin/uname
./bin/mv
./bin/pidof
./bin/base64
./bin/reformime
./bin/mount
./bin/date
./bin/getopt
./bin/true
./bin/makemime
./bin/fdflush
./bin/ping
./bin/mkdir
./bin/lsattr
./bin/touch
./bin/dumpkmap
./bin/kbd_mode
./bin/kill
./bin/lzop
./bin/watch
./bin/usleep
./bin/ipcalc
./bin/more
./bin/echo
./bin/ionice
./bin/login
./bin/nice
./bin/cat
./bin/linux64
./bin/pipe_progress
./bin/iostat
./bin/rm
./bin/chgrp
./bin/fgrep
./bin/rmdir
./bin/egrep
./bin/mountpoint
./bin/sh
./bin/setserial
./bin/su
./bin/ps
./var/
./var/opt/
./var/lock/
./var/lock/subsys/
./var/empty/
./var/tmp/
./var/local/
./var/spool/
./var/spool/cron/
./var/spool/cron/crontabs
./var/spool/mail
./var/mail/
./var/cache/
./var/cache/misc/
./var/cache/apk/
./var/lib/
./var/lib/udhcpd/
./var/lib/misc/
./var/lib/apk/
./var/run
./var/log/
./dev/
./home/
./root/
./lib/
./lib/sysctl.d/
./lib/sysctl.d/00-alpine.conf
./lib/ld-musl-aarch64.so.1
./lib/libz.so.1
./lib/libz.so.1.3
./lib/libapk.so.2.14.0
./lib/libc.musl-aarch64.so.1
./lib/apk/
./lib/apk/db/
./lib/apk/db/scripts.tar
./lib/apk/db/lock
./lib/apk/db/triggers
./lib/apk/db/installed
./lib/apk/exec/
./lib/libssl.so.3
./lib/modules-load.d/
./lib/mdev/
./lib/libcrypto.so.3
./lib/firmware/
./run/
./etc/
./etc/hostname
./etc/opt/
./etc/sysctl.d/
./etc/alpine-release
./etc/logrotate.d/
./etc/logrotate.d/acpid
./etc/services
./etc/issue
./etc/profile.d/
./etc/profile.d/color_prompt.sh.disabled
./etc/profile.d/20locale.sh
./etc/profile.d/README
./etc/inittab
./etc/hosts
./etc/sysctl.conf
./etc/udhcpc/
./etc/udhcpc/udhcpc.conf
./etc/modprobe.d/
./etc/modprobe.d/i386.conf
./etc/modprobe.d/blacklist.conf
./etc/modprobe.d/aliases.conf
./etc/modprobe.d/kms.conf
./etc/os-release
./etc/nsswitch.conf
./etc/securetty
./etc/ssl1.1/
./etc/ssl1.1/certs
./etc/ssl1.1/cert.pem
./etc/init.d/
./etc/busybox-paths.d/
./etc/busybox-paths.d/busybox
./etc/shadow
./etc/crontabs/
./etc/crontabs/root
./etc/protocols
./etc/passwd
./etc/fstab
./etc/group
./etc/ssl/
./etc/ssl/private/
./etc/ssl/certs/
./etc/ssl/certs/ca-certificates.crt
./etc/ssl/cert.pem
./etc/ssl/ct_log_list.cnf.dist
./etc/ssl/openssl.cnf.dist
./etc/ssl/ct_log_list.cnf
./etc/ssl/openssl.cnf
./etc/ssl/misc/
./etc/ssl/misc/tsget.pl
./etc/ssl/misc/CA.pl
./etc/ssl/misc/tsget
./etc/apk/
./etc/apk/world
./etc/apk/arch
./etc/apk/repositories
./etc/apk/keys/
./etc/apk/keys/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub
./etc/apk/keys/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub
./etc/apk/keys/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub
./etc/apk/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub
./etc/apk/keys/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub
./etc/apk/protected_paths.d/
./etc/modules-load.d/
./etc/periodic/
./etc/periodic/daily/
./etc/periodic/15min/
./etc/periodic/hourly/
./etc/periodic/monthly/
./etc/periodic/weekly/
./etc/shells
./etc/network/
./etc/network/if-post-down.d/
./etc/network/if-pre-down.d/
./etc/network/if-pre-up.d/
./etc/network/if-down.d/
./etc/network/if-up.d/
./etc/network/if-up.d/dad
./etc/network/if-post-up.d/
./etc/secfixes.d/
./etc/secfixes.d/alpine
./etc/conf.d/
./etc/modules
./etc/mtab
./etc/udhcpd.conf
./etc/profile
./etc/motd
localhost:~/dockerless/alpine$ /work/bin/sideroot -u0 -g0 
/ # ^C

/ # 
localhost:~/dockerless/alpine$ cp ../dockerless .
localhost:~/dockerless/alpine$ /work/bin/sideroot -u0 -g0 
/ # dock^C

/ # ./dockerless build --dockerfile Dockerfile --context .
INFO[0000] Deleting filesystem...                       
build error: reading dockerfile at path Dockerfile: open Dockerfile: no such file or directory
/ # ls
sh: ls: not found
/ # ^C

/ # 
localhost:~/dockerless/alpine$ ls
dev   etc   proc  run   sys   tmp   var
localhost:~/dockerless/alpine$ 
s1gnate-sync commented 12 months ago

Just on funny side it seems like very developer is doing his own "docker" :D

ThomasK33 commented 11 months ago

Hey @s1gnate-sync, thanks for opening the issue.

Dockerless aims to run from within an isolated container, e.g., docker or another OCI-compliant runtime. It performs all the steps specified in a Dockerfile imperatively on the rootfs without needing to have a Docker socket or build kit present. Everything is executed just in time, and once completed, it will result in the same fs and environment as if the image was built ahead of time.