Yes, because those CLI tools are made to be used by humans. If you want it to work fully automatically, you need to use it, as if it were used in a script, but strictly without any user-input.
Exhibit A
You need to find the equivalent of that for Void’s xbps-install. It must work 100% without any user-input, whatsoever.
Since apt and apt-get are so popular, Docker already provides those flags, that make it non-interactive, by default.
However, if you are using such fringe disitribution, you need to take care of all these precautions, manually, yourself.
Thanks. I think I can do that in Void.
I did not need to do anything like that when I used Debian primary image. It just worked.
Void is a nice challenge
Yes I have found I need -y flag on all xbps statements… That is I assume what you mean by non-interactive.
The alternative to Void is Alpine. I need to get something small.
Yes, but it depends on what xbps-install also does. For example, apt sometimes, asks, if it should replace config files or keep the old ones, when upgrading a package. For that specifically, you need another flag set for a default answer.
If xbps-install has a similar behaviour, then you need to account for that, as well.
I am a slow learner. I find that by choosing to do it the hard way ( with a Void image) it actually speeds up the learning process… the more problems you encounter, the faster you learn
But I do apologize for putting this current issue online. It took me a long while to learn a very simple lesson about noninteractive environments, and tested your patience.
Yes, waterfox starts. I think there is a font issue, or maybe some locale definitions needed. That is with Void parent, its OK with Debian.
That was Void-full image. I need to go to Void- mini
Also need to download the waterfox tarfile with wget.
Thanks
Neville
Try to make a Dockerfile for each version. This way, you can keep records of your learning process and perhaps even help other learners understand your journey for learning purposes.
To make the Dockerfile able to be built away from my workspace, I need it to download waterfox tarfile from the web.
I have some copies of Dockerfile versions with bugs .
Should I perhaps write a .tex document on learning to use Void parent images? It is a messy story.
I think I should only put bug-free dockerfiles on Github. I will push the Debian-based Dockerfile for waterfox. It will need a Readme on how to build and run it.
I get that, though I don’t know why would you would use wget over curl or another alternative.
I’m a fan of practical examples, however you seem very comfortable with those documents, so you might as well just add them.
Why? If you explain in the README that it’s a learning process and the previous Dockerfiles are not perfect, because they are part of the learning process, then it’s good, because people can understand how you shifted from one point to another.
There are some tutorials out there that are built like that, so people can understand how things evolved in one direction or another.
It’s often hard to understand how one got from 1 to 100, without seeing the intermediate steps.
I usually see this problem with Java tutorials offering like 3 huge classes with like 20 implemented methods for a really simple problem. I always ask myself: how did they even get there?
No reason, its just that I know wget. Never used curl.
I had better look at your example
Why? If you explain in the README that it’s a learning process and the previous Dockerfiles are not perfect, because they are part of the learning process, then it’s good, because people can understand how you shifted from one point to another.
There are some tutorials out there that are built like that, so people can understand how things evolved in one direction or another.
I get that. Thats how I write .tex docs. OK, I see we could setup Github in tutorial mode. Thats better than burying it in an itsFOSS post. Will have a try at a Github docker tutorial.
I’m now going back to my old job - but - a few weeks (months even?) ago I could have used this.
Scenario :
Ancient decrepit (mismanaged bullshit) Citrix environment was ANYTHING but a “thin client solution” - i.e. you had to have specific local SSL certs before you could connect.
Wouldn’t connect using Safari or Firefox or Chrome or Brave installed on the employer provided MacBook Pro with ANY version of the Citrix workspace app… This MacBook was running a specially tailored SOE from the international company - with it’s own App Store. I could installed a Windows 10 VM using that App Store, in the App Store provided VMware Fusion…
Spent days getting that Win10 VM configured (20 GB download) and tried again, tried numerous browsers etc cetera - no go… Also bear in mind this MacBook was sluggish i5 “Air” from 2018 - it would slow to a crawl running Windows 10 in a VM on it… Nada, nothing, zippo… Nada…
Tried building a Red Hat 7 (Gnome 3) desktop in VMware Fusion - nada, again…
A colleague said he’d got it working by setting up a OSX Mojave VM inside his Big Sur MacBook Pro… So - took me a week - but - I got there - got Mojave OSX working, fired up Safari - installed a very specifig (EOL) version Citrix client and HEY PRESTO! It works! Why I bothered either way - it was sluggish (problem on the Citrix environment, not my end) - and I never “used it in anger” anyway…
But - running a Mojave container would have been way simpler!
In theory one could run anything in a docker container… if not native just use qemu.
but
I think it is something of a distortion of what docker was meant for. The basic docker idea is to provide an environment to run one app independently of the OS environment and therefore hopefully immune to clashes.
However, since Docker can be used flexibly, it’s sometimes useful for using it a bit more differently. For example, if you have proprietary software that only runs on Windows or only on macOS, but you need it as a dependency for your software, then the best Alpine image won’t help. You’ll need to run it inside a Windows/macOS container.
I’m aware of what docker’s intended for - but - I’ve been reading about people doing desktop-y things with it too - ~5 years ago some dude deployed an XFCE desktop via docker, into AWS or something - so he had a remote machine he could run a GUI on… Dunno why he went that way - learning exercise?
Docker’s basically disposible ephemeral instances for a specific purpose…
I’ve been using containers on Solaris (Solaris Zones have been “mature” since forever) and FreeBSD jails, since “forever”, both of which predate mainstream adoption of containerised solutions by decades, I think AIX has / had a similar thing too…
I like it.
Packages are more permanent. Daemons are forever.
Its the way containers interact with the OS that is definitive
I had a brief brush with jail in my Freebsd days.
My Solaris must predate zones.