If a user implements the user-auth-service trigger in a plugin and that plugin does not echo the passed in app(s) on stdout, the app is assumed to not exist. This mirrors the functionality for applications in regards to auth filtering.
This may still need auditing to ensure it covers everything and doesn't cause issues, but local testing implies that everything is working as expected.
This will help ensure that users upgrading to a new plugin version who stop/start databases will always get the same version. This is particularly important for datastores such as elasticsearch and postgres that have more involved upgraded processes.
If the ID file contained an incorrect value, calling :start would say the service is started but :info would still show the container as missing.
Also fix an issue where docker inspect leaked stderr when the container was missing.
Refs dokku/dokku-redis#133
This PR allows dashes in service names, while still sanitizing them before they are used as database names. If the datastore is pre-existing, the datatabase name is assumed to be the same as the service name, and returned appropriately.
In the previous method, if the container was renamed or there were multiple names attached to the container, fetching the container ID would fail as the regex would only match at the end. Instead of using grep, use the docker 'filter' functionality to fetch the container ID as appropriate.
We previously allowed a wide range of service names. As the service name is sometimes used to name databases, the name was actually more restricted than any character, resulting in services that wouldn't start. Going forward, only alphanumeric and underscore characters are allowed.
This only impacts service creation. Any services with invalid names should be migrated to a new service, with the data exported and imported as normal.
Closesdokku/dokku-redis#99Closesdokku/dokku-mysql#47Closesdokku/dokku-mongo#86Closesdokku/dokku-redis#81
Ignore `docker ps` truncation. Looks like in new Docker version
(in my case Docker version 18.06.0-ce, build 0ffa825) long commands are truncated
and sometimes can return/contain binary output (truncation `...` symbols are binary).
Because of such output `grep -e` fails to find container.
Workaround was to use `--no-trunc` for `docker ps` command.