84 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
4696033532 feat: implement service filtering
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.
2022-07-07 02:54:14 -04:00
Jose Diaz-Gonzalez
8b002c7a7c fix: do not create the new database automatically
This should only be done if importing a given database. Instead, always import into the specified database name.

Refs #218
2021-09-13 02:59:01 -04:00
Jose Diaz-Gonzalez
7ca7c20ef8 fix: pin the image and image version of a created service at creation time
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.
2021-09-13 02:28:41 -04:00
Jose Diaz-Gonzalez
3ab20b0b4f feat: allow setting shm-size on created containers
Refs dokku/dokku-postgres#188
Closes dokku/dokku-postgres#201
2021-09-13 00:46:48 -04:00
Jose Diaz-Gonzalez
0387c2d30b feat: restore the imported database to the service's database
Refs #207
2021-09-12 23:48:10 -04:00
Jose Diaz-Gonzalez
1afdffef8d feat: add ability to set container config options during create/clone/upgrade actions
Also add to documentation where possible.

Closes dokku/dokku-mongo#131
2021-09-12 22:16:14 -04:00
Jose Diaz-Gonzalez
38bfaea286 fix: allow non-english characters in :connect shell
Closes dokku/dokku-mysql#116
2021-09-12 08:24:58 -04:00
Jose Diaz-Gonzalez
e85d96b3a1 feat: add the ability to constrain memory on service start/clone
Refs dokku/dokku-redis#86
2021-09-12 07:43:02 -04:00
Jose Diaz-Gonzalez
25ab99a4e2 chore: show a better error message when the image is missing
Refs dokku/dokku-clickhouse#4
2021-09-12 00:54:24 -04:00
Jose Diaz-Gonzalez
76cfd9a091 feat: add plugin trigger for service creation and deletion 2021-02-25 19:54:59 -05:00
Jose Diaz-Gonzalez
dccd7e7f89 feat: move all image names to config file
This allows us to more quickly update the image versions in use for tertiary images.
2020-03-31 01:36:28 -04:00
Jose Diaz-Gonzalez
7f4c06d6c0 chore: update dokku/wait version 2019-12-27 16:57:13 -05:00
Jose Diaz-Gonzalez
5b13bedbd6 chore: move to helper functions for fetching passwords 2019-07-11 16:34:35 -07:00
Jose Diaz-Gonzalez
93dd4fecbb feat: update ambassador, s3backup, and wait images 2019-07-11 14:31:47 -07:00
Jose Diaz-Gonzalez
7faec70ef2 fix: ensure the tracked container id is up to date
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
2019-06-11 15:44:54 -04:00
Jose Diaz-Gonzalez
028d82517f feat: re-allow dashes in names
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.
2019-05-30 17:03:48 -04:00
Jose Diaz-Gonzalez
a9fcde1404 chore: run shfmt 2019-05-30 11:06:25 -04:00
Jose Diaz-Gonzalez
181a1a18fa feat: switch to updated wait image 2019-03-25 12:46:42 -04:00
Jose Diaz-Gonzalez
5a541fc340 fix: correct handling of container retrieval
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.
2019-03-25 12:37:36 -04:00
Jose Diaz-Gonzalez
ec4e5b4a43 fix: correct the validation message 2019-03-09 16:39:35 -05:00
Jose Diaz-Gonzalez
233a261a3f fix: Strictly validate service names
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.

Closes dokku/dokku-redis#99
Closes dokku/dokku-mysql#47
Closes dokku/dokku-mongo#86
Closes dokku/dokku-redis#81
2019-03-09 15:54:23 -05:00
Jose Diaz-Gonzalez
fe3d4d6329 chore: minor consolidation in functions files 2019-03-09 15:54:23 -05:00
Jose Diaz-Gonzalez
26a1948e50 Update functions 2018-12-02 05:13:34 -05:00
Jose Diaz-Gonzalez
11435f7452 Merge branch 'master' into bug/ps/grep/binary 2018-12-02 04:57:41 -05:00
Jose Diaz-Gonzalez
5620147f89 Merge pull request #145 from dpoirier/use_if_exists_with_import
Use --if-exists with import
2018-10-10 09:20:54 -04:00
Jose Diaz-Gonzalez
59d285f2f1 feat: add ability to upgrade service image and image-version 2018-10-10 00:14:08 -04:00
Jānis Vītols
e6810fa7e0 Fix No such container: Binary problem
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.
2018-08-28 10:29:12 +03:00
Jose Diaz-Gonzalez
e78cc9bd36 Use --if-exists with import
To resolve https://github.com/dokku/dokku-postgres/issues/142
2018-04-30 13:55:58 -04:00
Jose Diaz-Gonzalez
ad62febd59 refactor: make variable as dns hostname more clear 2018-04-24 02:54:52 -04:00
Jose Diaz-Gonzalez
a2b1fbb737 refactor: move unimplemented command detection into config file 2018-04-24 00:27:22 -04:00
Jose Diaz-Gonzalez
a29039ecd2 fix: silence errors when a container does not exist. Closes dokku/dokku-redis#85 2018-04-23 15:52:17 -04:00
Jose Diaz-Gonzalez
8a9efd8f62 refactor: allow usage of the same variable to disable docker pulls 2018-04-23 06:56:51 -04:00
Jose Diaz-Gonzalez
bd2e292e1e feat: use custom env var to disable pull actions 2018-04-11 15:11:58 -04:00
Jose Diaz-Gonzalez
759eede6d6 feat: support a separate data root for Docker bind mounts
This does not fix the :backup subcommand, which uses a temporary directory mounted to /backup.
2018-04-10 23:33:53 -04:00
Jose Diaz-Gonzalez
00f9cb8b62 feat: add support for enhanced help output 2017-09-11 01:25:34 -04:00
Jose Diaz-Gonzalez
e7802ca80e feat: add ability to specify custom flags on clone/create
Refs dokku/dokku-redis#64
2017-08-26 18:10:21 -04:00
Jose Diaz-Gonzalez
e08854dc31 fix: drop unused config dir 2017-08-26 05:15:37 -04:00
Jose Diaz-Gonzalez
cba4a7f0cd feat: add s3 backup support 2016-10-31 11:39:31 -06:00
Jose Diaz-Gonzalez
47db80bd2a Pin dokkupaas/wait:0.2 2016-09-21 01:27:07 -06:00
Jose Diaz-Gonzalez
76251e7643 Move link file creation up 2016-08-29 10:49:46 -04:00
Jose Diaz-Gonzalez
1f31cd82c5 Refactor common functions into separate file 2016-08-29 02:36:17 -04:00
Jose Diaz-Gonzalez
cc0cfca7fe Add --internal-ip flag to info command 2016-08-28 23:24:27 -04:00
Jose Diaz-Gonzalez
59062af575 Fix expose tests 2016-08-28 22:15:13 -04:00
Jose Diaz-Gonzalez
84ccfda9d7 Document exposed ports when an invalid number of arguments are specified 2016-08-28 21:25:00 -04:00
Jose Diaz-Gonzalez
69944871da Add --id flag 2016-08-28 17:56:10 -04:00
Jose Diaz-Gonzalez
470840739d Add support for flags on the service:info command 2016-08-28 05:34:55 -04:00
Jose Diaz-Gonzalez
425c7e07d1 Add missing mkdir calls 2016-08-27 01:39:31 -04:00
Jose Diaz-Gonzalez
9328c22801 Use cat and double-quotes when retrieving the password 2016-08-27 01:39:26 -04:00
Jose Diaz-Gonzalez
3450d5bf08 Add missing SERVICE_ROOT env var 2016-08-27 01:10:42 -04:00
Jose Diaz-Gonzalez
5c9f70c3fd Output the config/data directories when performing service:info 2016-08-27 00:56:54 -04:00