Skip to content

fix: Allow Docker Desktop for Linux (DDFL) but warn about it, fixes #7307#7363

Merged
rfay merged 5 commits into
ddev:mainfrom
rfay:20250609_rfay_ddfl
Jun 11, 2025
Merged

fix: Allow Docker Desktop for Linux (DDFL) but warn about it, fixes #7307#7363
rfay merged 5 commits into
ddev:mainfrom
rfay:20250609_rfay_ddfl

Conversation

@rfay

@rfay rfay commented Jun 9, 2025

Copy link
Copy Markdown
Member

The Issue

We hadn't been supporting Docker Desktop for Linux due to mounting problems, but those seem to be resolved.

How This PR Solves The Issue

Calm the language in the docs and in the warning that DDEV gives.

Manual Testing Instructions

With DDFL, do ddev start
Read docs.

Automated Testing Overview

I had hopes of being able to add automated testing with Github actions, but you can't currently accept the DDFL license agreement from command line, only from GUI.

Release/Deployment Notes

@github-actions github-actions Bot added the bugfix label Jun 9, 2025
@github-actions

github-actions Bot commented Jun 9, 2025

Copy link
Copy Markdown

@rfay

rfay commented Jun 10, 2025

Copy link
Copy Markdown
Member Author

Manual run test failures:

  • TestTimezoneConfig
  • TestConfigFunctionality (due to missing mysql client on host)
  • TestProcessHooks works with DDEV_DEBUG=true
  • TestGitPull

make.out.txt

@rfay rfay marked this pull request as ready for review June 10, 2025 13:23
@rfay rfay requested review from a team as code owners June 10, 2025 13:23
@rfay rfay requested a review from stasadev June 10, 2025 13:23

@stasadev stasadev left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I couldn't test it properly on Arch Linux due to port conflicts, I don't even want to investigate it and will just rollback my system:

...
Error response from daemon: ports are not available: exposing port TCP 127.0.0.1:80 -> 127.0.0.1:0: listen tcp4 127.0.0.1:80: bind: permission denied'
...
Port 8025 is busy, using 33000 instead, see https://ddev.com/s/port-conflict
...
unable to listen on required ports, port 8142 is already in use,
Troubleshooting suggestions at https://ddev.readthedocs.io/en/stable/users/usage/troubleshooting/#unable-listen
...

Edit: I partly resolved it by changing the router ports to 8080/8443, installing qemu-full instead of qemu-base, and ddev start worked.


What I noticed is that I see this warning three times during ddev start:

Docker Desktop for Linux is not explicitly supported and may cause problems.

Not a big deal, but I wonder if it might make sense to add some kind of global array to the cache messages and have something like util.WarningOnce(), which also can be used for other repeating warnings (i.e. we can see the same disable-settings-management warnings several times).

@rfay

rfay commented Jun 10, 2025

Copy link
Copy Markdown
Member Author

Hmm, I was worried about that kind of thing, but didn't notice it. It's because I used util.Warning whereas previously it had returned an error.

@rfay rfay force-pushed the 20250609_rfay_ddfl branch from 6f08060 to 88df7e6 Compare June 11, 2025 00:44
@rfay

rfay commented Jun 11, 2025

Copy link
Copy Markdown
Member Author

It wasn't right to have the DDFL check in CheckDockerVersion() in the first place. Created CheckDockerProvider() for this purpose, and call it at startup.

@stasadev stasadev left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent, tested it, the warning is displayed only once.

Comment thread cmd/ddev/cmd/debug-dockercheck.go Outdated
Co-authored-by: Stanislav Zhuk <stasadev@gmail.com>
@rfay rfay changed the title fix: Allow Docker Desktop for Linux but warn about it, fixes #7307 fix: Allow Docker Desktop for Linux (DDFL) but warn about it, fixes #7307 Jun 11, 2025
@rfay

rfay commented Jun 11, 2025

Copy link
Copy Markdown
Member Author

I had odd results trying to manually test TestTimezoneConfig with DDFL, and wasn't able to sort them out.

Ubuntu 24.04, DDFL, TestTimezoneConfig fails because with

t.Setenv("TZ", "")
it gets a HostAbbrev of UTC.

Succeeds if I remove that line.

But...

  • Test doesn't fail on same system using docker-ce.
  • Running a trivial go file that looks up host abbrev works (seems to only fail with t.SetEnv("TZ", "")

It's not that important to solve, but it sure is confusing.

    config_test.go:1208: 
            Error Trace:    /home/rfay/workspace/ddev/pkg/ddevapp/config_test.go:1208
            Error:          Not equal: 
                            expected: "timezone=UTC\nphptz=America/Denver"
                            actual  : "timezone=MDT\nphptz=America/Denver"
                            
                            Diff:
                            --- Expected
                            +++ Actual
                            @@ -1,2 +1,2 @@
                            -timezone=UTC
                            +timezone=MDT
                             phptz=America/Denver
            Test:           TestTimezoneConfig

I have absolutely no idea why DDFL would be related to this, as it's a host-side lookup using go.

So somehow hostTimezoneAbbrev is UTC, just hostTimezoneAbbr, _ = time.Now().In(time.Local).Zone()

@rfay

rfay commented Jun 11, 2025

Copy link
Copy Markdown
Member Author

Bizarre. It works fine with DDEV_DEBUG=true.

@rfay rfay merged commit b09a006 into ddev:main Jun 11, 2025
9 checks passed
@rfay rfay deleted the 20250609_rfay_ddfl branch June 11, 2025 18:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants