←back to thread

123 points cl3misch | 3 comments | | HN request time: 0.73s | source
Show context
IshKebab ◴[] No.44386057[source]
We tried to use this on our compute cluster for silicon design/verification. We gave up in the end and just went with the traditional TCL (now Lua) modules.

The problems are:

1. You can't have apptainers that use each other. The most common case was things like Make, GCC, Git etc. If Make is in a different apptainer to GCC then it won't work because as soon as you go into Make then it can't see GCC any more.

2. It doesn't work if any of your output artefacts depend on things inside the container. For example you use your GCC apptainer to compile a program. It appears to work, but when you run it you find it actually linked to something in the apptainer that isn't visible any more. This is also a problem for C headers.

3. We had constant issues with PATH getting messed up so you can't see things outside the apptainer that should have been available.

All in all it was a nice idea but ended up causing way more hassle than it was worth. It was much easier just to use an old OS (RHEL8) and get everything to work directly on that.

replies(5): >>44386967 #>>44387745 #>>44387848 #>>44389356 #>>44391642 #
Fokamul ◴[] No.44387848[source]
So you are using container app and your biggest problem with it is, that it's doing exactly as advertised -> containers :D
replies(1): >>44388803 #
1. IshKebab ◴[] No.44388803[source]
If you want to be unnecessarily dismissive about the problems with containers, sure.
replies(1): >>44400050 #
2. elmolino89 ◴[] No.44400050[source]
Frankly I have a problem with one of your problem as described. Who on the planet Earth creates a container with GCC, may I guess, to compile programs? and then complains about make being located in another container. If you miss some utility just convert the apptainer container to a sandbox, install utilities you need and convert the sandbox to .sif as needed.

Also the whole point of building the program using compilers/libraries in the container is to use such container to run the aforementioned program in that very environment and not worry about libraryX or utility Y not installed in some box in a galaxy far, far away...

replies(1): >>44400432 #
3. IshKebab ◴[] No.44400432[source]
> Also the whole point of building the program using compilers/libraries in the container is to use such container to run the aforementioned program in that very environment

Says who? That's only because that's the only way it works, not because it's desirable to only work like that.

The only way Apptainers work well is if you put everything you need in one Apptainer, which makes them much less useful than you might imagine.