this post was submitted on 23 Nov 2023
30 points (70.3% liked)

Linux

48640 readers
2230 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Long, short story: CLI animation with some minor annoyances. "Handcrafted" most of em out of the .c file, followed by a bunch of gcc flags. Made it distroless, and this came up. Then my "sharing itch" started after checking the memory usage of the container at a whooping 0 bytes. (I know it must be way more than that, but still.). Just curious if I screwed something up or not. Also, c/Docker is really dead so I had to resort to you guys.

docker run -it --rm --log-driver none --net none --cap-drop=all --read-only --security-opt=no-new-privileges defnotgustavom/nyancat

Downvotes are to the left if you just don't care and need that dopamine/self-validation hit, I guess. (Just saying since last time I shared a simple command, with code and all, and I got downvoted to oblivion plus my thread deleted for no apparent reason, so eh.)

top 17 comments
sorted by: hot top controversial new old
[–] blotz 17 points 1 year ago (3 children)

Why wrap a CLI tool in a docker container? Wouldn't it be simpler to directly compile nyancat to multiple architectures if the goal is to make it run on all platforms?

[–] FooBarrington 12 points 1 year ago (1 children)

If you really wanted to, you could create an actually portable executable :)

[–] [email protected] 3 points 1 year ago (2 children)

That looks really interesting! Does this exist for other languages like Rust?

[–] AnUnusualRelic 2 points 1 year ago
[–] FooBarrington 2 points 1 year ago (1 children)
[–] [email protected] 3 points 1 year ago

Very interesting, might have to check that out sometime

[–] GustavoM 8 points 1 year ago

Because I'm doing this as a "self-learning" process. Plus, docker is an excellent tool and even "silly" images like this one can give me an edge while looking for (more) jobs, so there's that. Coding could grant me the same "edge" as well yes, but docker has "more value" since it requires you to code -AND- to have some knowledge/depth regarding typical "dockerization" processes.

[–] [email protected] 4 points 1 year ago

I would imagine it's just to experiment with docker

[–] TootSweet 8 points 1 year ago (1 children)

Works great on my Raspberry Pi 4! (Most Docker images don't support arm64.)

[–] GustavoM 1 points 1 year ago

Glad to hear! Thanks.

[–] [email protected] 8 points 1 year ago (1 children)

My downvotes are to the right 😩, I guess this means I gotta upvote

[–] GustavoM 2 points 1 year ago (1 children)

Eh, that was meant to be a slight mockery for "ex-redditors" (since they are mostly composed of "downvote-happy" users).

[–] [email protected] 1 points 1 year ago (1 children)

I know, this comment was my silly way of saying I like what you’re doing.

[–] GustavoM 2 points 1 year ago

Oh. Thank you then. :p

[–] [email protected] 4 points 1 year ago

People were pretty clear about the reasons they downvoted you as your "simple" command was an obfuscated shell script that you were asking people to run without explanation.

[–] [email protected] 3 points 1 year ago (1 children)

Neat! What proccess did you follow for building distroless? I was using buildah, mounting dir, yum installing into the mount, and exporting that container off.

[–] GustavoM 3 points 1 year ago

Eh...the usual "FROM: alpine:edge", pull everything in with git, change the code as needed, static compiling everything, strip dead code out of the binary, send the binary in a scratch image and then assigning a non-root user to it.