Hi,
Please bear with me, that it is on the edge of being a question about Wine.
My DevOp is not too happy about my build-pipeline depending on binfmt to execute my (win32) compiler in a docker environment.
Binfmt is a kernel-option (/module ?), and argument is that I should not rely on that. It will e.g. cause trouble/complexity, if we were to run this in e.g. a kubernetes cluster, where the kernels does not have this.
Are there any other linux mechanisms I can use, that does roughly the same?
Was looking at:
https://proot-me.github.io/
PRoot is a user-space implementation of chroot, mount --bind, and binfmt_misc.
...
Thx
/T
alternative to binfmt, for wine in docker in kubernetes
- DarkShadow44
- Level 8
- Posts: 1207
- Joined: Tue Nov 22, 2016 5:39 pm
Re: alternative to binfmt, for wine in docker in kubernetes
Can't you directly invoke wine instead of using binfmt?
Re: alternative to binfmt, for wine in docker in kubernetes
Yes, I can certainly call "wine the-command.exe ..." myself.
We just have a lot of build-pipelines that don't do that a.t.m., and the quickest way was just to find a user-space equivalent to binfmt, if possible.
I am already investigating how to call "wine" myself from everywhere. This is complicated by the fact that:
1) It must run on Windows (ths developer PC's) and linux/docker (for the CI).
2)
We are using Ceedling to build some of our products. It has a tool-configuration .yml like this:
:release_compiler:
:executable: iccarm.exe
:arguments:
- xxx
- yyy
- zzz
It turns out, that writing "wine iccarm.exe" as the executable does not work, because Ceedling is so picky about this, that it *must* be able to 'stat' that exact file. And a file called "wine iccarm.exe" does not exist ...
Likewise for our Gradle tasks:
task someTask(type:Exec) {
executable = "iccarm.exe"
args = ['xxx', 'yyy', 'zzz' ]
}
In both examples, I must put 'wine' as the executable, and move 'iccarm.exe' as first argument.
But only for linux. On windows i should not ...
Unless I make sure there is a dummy 'wine.bat' file one the windows, pc's...
This could end up being a mess...
It could also end up beeing the best option after all
I was just reaching out to see, if there was a viable solution for replacing 'binfmt'.
We just have a lot of build-pipelines that don't do that a.t.m., and the quickest way was just to find a user-space equivalent to binfmt, if possible.
I am already investigating how to call "wine" myself from everywhere. This is complicated by the fact that:
1) It must run on Windows (ths developer PC's) and linux/docker (for the CI).
2)
We are using Ceedling to build some of our products. It has a tool-configuration .yml like this:
:release_compiler:
:executable: iccarm.exe
:arguments:
- xxx
- yyy
- zzz
It turns out, that writing "wine iccarm.exe" as the executable does not work, because Ceedling is so picky about this, that it *must* be able to 'stat' that exact file. And a file called "wine iccarm.exe" does not exist ...
Likewise for our Gradle tasks:
task someTask(type:Exec) {
executable = "iccarm.exe"
args = ['xxx', 'yyy', 'zzz' ]
}
In both examples, I must put 'wine' as the executable, and move 'iccarm.exe' as first argument.
But only for linux. On windows i should not ...
Unless I make sure there is a dummy 'wine.bat' file one the windows, pc's...
This could end up being a mess...
It could also end up beeing the best option after all
I was just reaching out to see, if there was a viable solution for replacing 'binfmt'.
- DarkShadow44
- Level 8
- Posts: 1207
- Joined: Tue Nov 22, 2016 5:39 pm
Re: alternative to binfmt, for wine in docker in kubernetes
I personally think a small wrapper script would be the best here, when you can't use binfmt.