New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Manage ddev project list independently of docker container labels (yaml) #642
Comments
Note that #524 was the previous place this was being discussed, and there was an associated google doc with the various issues |
Initial read looks good. A few thoughts (and these are just thoughts/brainstorming).
I realize that we probably need to keep this initial scope small and tight, but I can see wider implications and opportunities that I at least want to surface as we're shaping this to an actionable state. |
I think that having an alternate method to drive the results of More than once, after using The idea to use a small database to keep track of projects with a
I'm sure there's more that I can come up with. -mike |
Since this has been a long time since we've revisited/updated, we will also need to clarify the language around ddev rm/stop/start because for a while we were going to remove "stop" and now I don't believe we will. The question then becomes how we delineate removing the containers, the config, the metadata, and/or the database. Not an impossible problem to solve, but just issues to work through as we approach this. |
…only to localhost, fixes #1491, fixes #941, #642 too (#1502) * Add configuration to expliictly bind to a static host db port, fixes #1491, fixes #941 * Add static binding to webserver localhost port * Add TestPortSpecifications to validate port collision behavior * Switch to a project list strategy, much more expandable * Do quick and dirty test of mysql connectivity on localhost port * Don't always reserve ports, only reserve if in config.yaml * Make TestCmdGlobalConfig less fragile * Add --host-db-port and --host-webserver-port
With the pull of #1502 this one is now completely unblocked in honor of @rickmanelius . |
What happened (or feature request):
Over in #484 (comment) the discussion is underway about ddev start/stop/rm, and one of the key reasons we've kept containers around (the "stopped" state) is just because ddev doesn't know what projects it has unless docker tells it.
In reality we need to track projects separately from docker, because it's impossible for docker containers to represent the actual state of what a user may have set up.
We've talked at times about using a ddev-managed yaml file in ~/.ddev to track project state; It would probably be more appropriate to use a real database like sqlite instead. Basically every start would put the key information into the db, and
ddev list
would report the info from that database (whether sqlite or yaml or whatever). Additional docker container information would be used to supplement the information about project state.This allows us to:
Essentially, way back in the day (drud local days) docker containers were the easiest way to get info about projects, and we used it. But we've outgrown that, and it was inadequate always. It's time to leave it behind.
I'd envision the following behavior:
ddev start
updates the databaseddev stop
(our current "remove") also updates the dbddev list
uses the database and supplements with live docker info to present its list. But it would know of all projects. It could also know the status of db (size, and whether it exists or has been removed, which can be pretty important and useful)ddev rmdb
or something to trash the database, as database existence isn't really about start/stop/rmddev list
would need some new filter options, for example to not show projects that have no database, or to not show projects that are inactive.Destruction of the list db would be nonfatal (just deletion of a file) and the database could be recreated naturally just by starting projects.
This is most likely a prerequisite to #484 (reorganize stop/rm commands)
Please use a complexity rating of 1-5 (5 is high) for a feature request. (High complexity implies more PR planning)
3 - This appears relatively easy to implement, but will likely expose weaknesses in our code that will have to be dealt with.
The text was updated successfully, but these errors were encountered: