Closed benoitf closed 2 weeks ago
@benoitf It's a toggle design-wise because it's an option. Some users may not have permissions to install system-wide. Some users may not want it to be installed system wide. I don't know what the ratio is there, but I would expect something to be done by hitting next to be something that everyone wanted (if they wanted to install Podman, or Compose, or whatever the name of the onboarding flow they're in is.)
Does that make sense?
hello @mairin
The problem to me is that at the end of the workflow I expect to be able to run podman compose
and that it works
but in the current implementation it doesn't
at the end of the workflow if I do podman compose
I have
podman compose --version
Error: exec: "docker-compose": executable file not found in $PATH
The problem is that to use podman compose
it doesn't require to be installed system-wise
but in the workflow I can see the text Compose will be installed in the next step
and then
and then I see a screen with too many sentence / details
so here
I expect that the previous step would have tell me that now podman compose
is enabled
Only if I want to use docker-compose
it could tell me do you want to install it system wise
or the toggle but it could be a checkbox as I don't really need that.
Coming back to the 1. fact
If I look at podman source code https://github.com/containers/podman/blob/19c870da0d4923b2bf2d62b5d424da5a649b4d40/cmd/podman/compose.go#L79
I can provide a custom PODMAN_COMPOSE_PROVIDER environment variable
a. so Podman Desktop could tell me where the docker-compose
file as been downloaded and I could use in a SHELL
PODMAN_COMPOSE_PROVIDER=~/.local/share/containers/podman-desktop/extensions-storage/podman-desktop.compose/bin/docker-compose podman compose --version ✔
>>>> Executing external compose provider "/Users/benoitf/.local/share/containers/podman-desktop/extensions-storage/podman-desktop.compose/bin/docker-compose". Please refer to the documentation for details. <<<<
Docker Compose version v2.23.0
so it works without using a system wide installation
b. Podman Desktop could tell me that it will update my ~/.zprofile
(to insert $PODMAN_COMPOSE_PROVIDER inside)
and also check the value if defined to check if property env is correctly updated/set
c. looking another part of podman source code
and https://github.com/containers/podman/blob/main/cmd/podman/compose.go#L88-L98
it searches in /usr/local/bin or /opt/homebrew/bin but not only in system wide folders, it also searches in use $PATH
so podman desktop could add ~/.local/share/containers/podman-desktop/extensions-storage/podman-desktop.compose/bin
to the $PATH environment variable and asking the user to create a new shell where it'll work
it seems podman's code check also $HOME/.docker/cli-plugins/docker-compose
but I think here there is a bug in podman's code as it's expecting it's in the user PATH while it is not.
but to sum up, we should have podman compose
command working at the end of the onboarding flow without the need to install it system-wide
@benoitf ah ok i understand. What I would have expected, if I didn't opt into system-wide installation, that 1. c or 1. b would have been done and I wouldn't have had to think about it. Is that possible to do?
There is a mockup to cover the case where we can't find it in the path:
These do come across a bit cluttered, there's a few aesthetic tweaks I'd suggest to bring them closer to the mockups' appearance which I think are less overwhelming? I could file tix for each.
(filed this: https://github.com/containers/podman-desktop/issues/4462)
Beside the UI tweaks/clutter, I still think there's a core issue here:
I think this issue has been fixed. The setup now doesn't prompt for a toggle, rather informs the user that system-wide installation is mandatory to get it working.
@benoitf We can close this one, right?
yes
Is your enhancement related to a problem? Please describe
When I click on the workflow to install compose, I click on next/next/next
but to make it really work I need to install it system wide
so I find it confusing that I have a prompt with a toggle
Describe the solution you'd like
I would expect that I should always click on the next button and by using default button being selected at the end I have a fully functional 'podman compose' command
But I'm asked at one step with a toggle
and if I click next it will just do nothing.
I would expect that it prompts me ok but 'podman compose' won't work are you sure yes/no and clicking next /next it will install it globally
so, in short: if I only click on all next buttons I expect to have at the end something working
while here there are disclaimers displayed but the default workflow (clicking next/next/next) is not trying to install it globally
Describe alternatives you've considered
No response
Additional context
No response