89luca89 / lilipod Goto Github PK
View Code? Open in Web Editor NEWLilipod is a simple container manager, able to download, unpack and use OCI images from various container registries.
License: GNU General Public License v3.0
Lilipod is a simple container manager, able to download, unpack and use OCI images from various container registries.
License: GNU General Public License v3.0
hello, can you please provide android and termux support
This project is very useful and I would like to donate to it
this is just a wild guess, but I'm trying this on Artix linux, the distro like void or alpine has no systemD. The reason I think the problem is related to lilipod is because I remember seeing issues related to cgroupfs with other container systems involving systemD.
I might be 100% wrong and the issue could be something else, I am not a person who knows a lot about containers. If this issue is related to distrobox, then please let me know, so I can go and open the issue there instead (and sorry if that's the case).
$ distrobox enter debian
Error: could not start entrypoint.
2023/12/19 01:12:03 setup cgroupfs: mkdir /sys/fs/cgroup/container-debian.scope: permission denied
followed the steps to static install lilipod. installed the latest distrobox using wget. distrobox wants podman or docker to run.
I would be interested in seeing a comparison of:
lilipod run --rm -ti
podman run --rm -ti
docker run --rm -ti
to me at least, it's as interesting as exec
performance.
Also recommend using hyperfine
over time
for measuring performance:
$ hyperfine 'sleep 1'
Benchmark 1: sleep 1
Time (mean ± σ): 1.005 s ± 0.001 s [User: 0.001 s, System: 0.003 s]
Range (min … max): 1.004 s … 1.006 s 10 runs
hyperfine gives more detail about average (mean), variance, etc.
But take this with a pinch of salt, just curious. Neat project!
Currently, the LICENSE file is missing.
You should add this in order to preserve your rights.
This is probably possible using buildkit if you're open to adding a dependency or run buildkit inside a container in daemonless mode as described here with a command similar to this:
docker run \
-it \
--rm \
--privileged \
-v /path/to/dir:/tmp/work \
--entrypoint buildctl-daemonless.sh \
moby/buildkit:master \
build \
--frontend dockerfile.v0 \
--local context=/tmp/work \
--local dockerfile=/tmp/work
Hi,
I'd like to use lilipod behind a registry mirror-- but I see no option for setting one for lilipod.
Could you point me in the right direction to pass it a config option. If it's not available, would you consider supporting it as a config flag?
Thanks.
I have an image created by distrobox.
If I try to distrobox-rm it, I can still see it in distrobox list, however if I try to delete it again, i get a messege, that there are no containers with that name.
If I try to delete it with lilipod rm, I get the same result.
However I can still see it in lilipod ps -a output.
lilipod rm -a deletes everything successfully
I am trying to clone existing distrobox container using: distrobox create -v --name neon --clone ubuntu
.
It fails with: 2024/05/23 18:43:34 no such object: [ubuntu --format {{.State.Status}}]
I tried using container ID with the same result.
Container ubuntu
exists and working correctly.
I am able to create fresh containers.
Seems like lilipod is unable to parse command line when options and arguments are provided in a mixed order.
Eg:
lilipod --log-level debug inspect --type container --format {{.State.Status}} ubuntu
- works
lilipod --log-level debug inspect --type container ubuntu --format {{.State.Status}}
- fails
Not sure if the fix should come on the lilipod side or distrobox side...
Verbose output:
$ distrobox create -v --name neon --clone ubuntu
+ [ -z ubuntu ]
+ [ -z neon ]
+ [ -z neon ]
+ [ -z ]
+ uname -n
+ container_hostname=mypc
+ [ 0 -eq 1 ]
+ printf %s mypc
+ wc -m
+ [ 4 -gt 64 ]
+ container_manager=lilipod
+ command -v lilipod
+ [ 1 -ne 0 ]
+ container_manager=lilipod --log-level debug
+ [ 0 -ne 0 ]
+ [ 0 -ne 0 ]
+ [ -n ]
+ [ -z /usr/bin/distrobox-init ]
+ [ -z /usr/bin/distrobox-export ]
+ [ 0 -ne 0 ]
+ lilipod --log-level debug inspect --type container neon
+ [ -n ubuntu ]
+ get_clone_image
+ lilipod --log-level debug inspect --type container ubuntu --format {{.State.Status}}
2024/05/23 18:44:17 no such object: [ubuntu --format {{.State.Status}}]
+ container_source_status=
+ container_image=
Hello. I'm trying to use lilipod as a lightweight container manager for running distrobox on Ubuntu Touch and SailfishOS (mobile Linux distros).
It generally works after few workarounds like a wrapper for missing getsubids
(similar to #7) and fixing subuid ranges on host. However for images like registry.opensuse.org/opensuse/tumbleweed:latest
there seems to be no way to specify the correct architecture to fetch, and it will default to incompatible amd64
on arm64
host.
I'm not very familiar with OCI tools syntax, so please mention if this can be workarounded like by specifying the arch in the URL.
During initial start, I am seeing the following in the lilipod log:
...
Get:77 http://archive.ubuntu.com/ubuntu noble/main amd64 dbus-user-session amd64 1.14.10-4ubuntu4 [9960 B]
panic: runtime error: index out of range [1] with length 1
goroutine 1 [running]:
github.com/89luca89/lilipod/pkg/logging.ReadLog({0x990060, 0xc0000aa220?}, 0xfffffff1886e0900, 0xfffffff1886e0900, 0x1, 0x0)
/home/user/Develop/src/lilipod/pkg/logging/logging.go:127 +0x6a7
github.com/89luca89/lilipod/cmd.logs(0xc000286008, {0xc0000e0d00?, 0x4?, 0x8ca620?})
/home/user/Develop/src/lilipod/cmd/logs.go:80 +0x2c9
github.com/spf13/cobra.(*Command).execute(0xc000286008, {0xc0000c4060, 0x2, 0x2})
/home/user/Develop/src/lilipod/vendor/github.com/spf13/cobra/command.go:940 +0x882
github.com/spf13/cobra.(*Command).ExecuteC(0xc0001ea908)
/home/user/Develop/src/lilipod/vendor/github.com/spf13/cobra/command.go:1068 +0x3a5
github.com/spf13/cobra.(*Command).Execute(...)
/home/user/Develop/src/lilipod/vendor/github.com/spf13/cobra/command.go:992
main.main()
/home/user/Develop/src/lilipod/main.go:109 +0x5b
...
Otherwise the container seems to be functioning normally, except I can't recall if podman does set the hostname but lilipod surely doesn't.
Container: ubuntu:24.04, lilpod: 0.0.3(68b04f2), distrobox: 0.7.1.0
P.S.
After initial start is done and contaner is running, "lilipod logs" returns nothing. Is that by design?
How can I install getsubids
on Ubuntu 22.04? I couldn't find it in the repos:
osalbahr@vclvm176-53:~/lilipod$ ./lilipod-linux-amd64
failed to find dependency getsubids, can't recover.
2023/10/08 11:01:06 exec: "getsubids": executable file not found in $PATH
osalbahr@vclvm176-53:~/lilipod$ getsubids
getsubids: command not found
osalbahr@vclvm176-53:~/lilipod$ command_not_found_handle getsubids
getsubids: command not found
osalbahr@vclvm176-53:~/lilipod$ apt-file search getsubids
osalbahr@vclvm176-53:~/lilipod$
As per the dependencies section, I tried to install uidmap
but it doesn't seem to contain getsubids
either:
osalbahr@vclvm176-53:~/lilipod$ sudo apt install uidmap
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
uidmap is already the newest version (1:4.8.1-2ubuntu2.1).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
osalbahr@vclvm176-53:~/lilipod$ getsubids
getsubids: command not found
System info:
.... osalbahr@vclvm176-53
.',:clooo: .:looooo:. --------------------
.;looooooooc .oooooooooo' OS: Ubuntu 22.04.3 LTS x86_64
.;looooool:,''. :ooooooooooc Host: KVM RHEL 7.6.0 PC (i440FX + PIIX, 1996)
;looool;. 'oooooooooo, Kernel: 5.15.0-84-generic
;clool' .cooooooc. ,, Uptime: 3 days, 8 hours, 20 mins
... ...... .:oo, Packages: 3432 (dpkg), 190 (brew)
.;clol:,. .loooo' Shell: bash 5.1.16
:ooooooooo, 'ooool Resolution: 1024x768
'ooooooooooo. loooo. Terminal: /dev/pts/1
'ooooooooool coooo. CPU: 2x Intel (Haswell, IBRS) (2) @ 2.4GHz
,loooooooc. .loooo. GPU: Cirrus Logic QEMU Virtual Machine
.,;;;'. ;ooooc Memory: 1.12 GiB / 7.75 GiB (14%)
... ,ooool. Network: 2x Unknown
.cooooc. ..',,'. .cooo. BIOS: SeaBIOS 0.0 (04/01/2014)
;ooooo:. ;oooooooc. :l.
.coooooc,.. coooooooooo.
.:ooooooolc:. .ooooooooooo'
.':loooooo; ,oooooooooc
..';::c' .;loooo:'
.
Any suggestions?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.