wails
wails copied to clipboard
exec.Command() with docker not working in builds, but work in wails dev
Description
Looks to be once the application is packaged on Mac OS, it cannot perform any docker calls on exec.Command() but work perfectly fine if called from wails dev
To Reproduce
1: Start a project:
wails init -n test_project -t svelte-ts
2: Go to app.go and change the Greet function to be the following:
// Greet returns a greeting for the given name
func (a *App) Greet(name string) string {
cmd := exec.Command("docker", "container", "ls")
out, err := cmd.Output()
if err == nil {
return string(out)
}
return fmt.Sprintf("Nop", name)
}
3: Run wails dev on the project
4: Click the "Greet" button. You'll see it runs docker container ls successfully with output.
5: Run wails build on the project and open your project binaries in the /build dir.
6: Run step 4, but notice it no longer outputs docker container ls. Error 2 on runtime
Expected behaviour
Docker calls to work in builds outside of wails dev
Screenshots
Attempted Fixes
Tried the docker calls from a Makefile, no dice.
Tried to use /bin/sh -c, also no dice.
System Details
# Wails
Version | v2.6.0
# System
┌─────────────────────────┐
| OS | MacOS |
| Version | 13.6.1 |
| ID | 22G313 |
| Go Version | go1.20.3 |
| Platform | darwin |
| Architecture | amd64 |
└─────────────────────────┘
# Dependencies
┌────────────────────────────────────────────────────────────────────────┐
| Dependency | Package Name | Status | Version |
| Xcode command line tools | N/A | Installed | 2397 |
| Nodejs | N/A | Installed | 20.9.0 |
| npm | N/A | Installed | 10.1.0 |
| *Xcode | N/A | Installed | 15.0.1 (15A507) |
| *upx | N/A | Available | |
| *nsis | N/A | Available | |
└─────────────────────── * - Optional Dependency ────────────────────────┘
### Additional context
_No response_
More likely an issue with permissions. Check if there's a plist value you can change. This really isn't anything to do with Wails.
@leaanthony nah, plist wise it looks good, binaries match up. It runs, Mac considers the plist valid, no X on it as well. I even tried the following what the dev plist did to no avail.
What ended up working was running the binary directly in App -> Contents -> MacOS -> App. Just worked out of the box. Ever see that before?
It's certainly a bundle permission issue in that case.
Try this: https://groups.google.com/g/golang-nuts/c/Ul1XsHm5I2s?pli=1