Commit Graph

64 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
f5c3b5dc34 refactor: move DOKKU_WAIT_TO_RETIRE to a checks property
This centralizes the property and removes one more dokku-specific property from the app environment variables.

Closes #5049
2022-11-22 20:27:43 -05:00
Jose Diaz-Gonzalez
f0095fec2f fix: ensure we use the correct variable for WAIT
A previous refactor ended up disabling waits completely, potentially causing app downtime during deploys.
2022-03-02 01:18:41 -05:00
Jose Diaz-Gonzalez
b48b79f5ca feat: allow specifying a single process type to restart
This changes restarts to drop the 'release' part that currently gets triggered, which also helps reduce the possibility that a new image layer will be added due to predeploy deploy triggers.

Note that the old method essentially halfway-rebuilt the app (which was what added the extra layer). This refactor removes that, which is a bc-break.

Additionally, scaling processes will result in deploying _only_ restarting the processes being scaled.

Closes #2184
2021-10-09 18:46:17 -04:00
Jose Diaz-Gonzalez
6fb306eb03 feat: ignore will-cite message in the output
Dokku's users will basically never publish any papers about how we deploy code, so this is safe.
2021-10-09 16:12:06 -04:00
Jose Diaz-Gonzalez
74b2961f8d fix: correct shfmt issues 2021-10-06 02:04:22 -04:00
Jose Diaz-Gonzalez
76201aed64 feat: add ability to deploy process types in parallel 2021-10-06 02:04:21 -04:00
Jose Diaz-Gonzalez
9e27b07772 refactor: split out docker-local scheduler deploys into separate binaries
This will allow those binaries to run in parallel.
2021-10-06 02:04:21 -04:00
Jose Diaz-Gonzalez
abfb0d3977 fix: do not require double quotes when issuing dokku run commands
This was broken in the #4736.
2021-10-03 19:46:42 -04:00
Jose Diaz-Gonzalez
06742cfcc4 fix: silence stderr when fetching a command from the Procfile
When deploying, if the procfile-get-command fails for a given process, this causes an error to output to stderr. We instead silence this as the error isn't important.
2021-09-29 00:48:26 -04:00
Jose Diaz-Gonzalez
5855fd069f fix: use RANDOM in upcoming name
This fixes issues where a previous deploy may have failed, consuming that other slot.
2021-09-05 01:15:38 -04:00
Jose Diaz-Gonzalez
9c073364f5 feat: set initial container name for docker-local deploys
This makes it easier to track a Dokku container vs an intermediate container or something created external to Dokku.

The container is properly renamed later on, so the `upcoming` part is just an indicator that the container has potentially not yet passed healthchecks.
2021-09-05 00:35:03 -04:00
Jose Diaz-Gonzalez
6c6e26712d refactor: move helper function to internal-functions 2021-08-12 21:11:11 -04:00
Jose Diaz-Gonzalez
c4985bca67 fix: inject global env vars into cnb containers 2021-08-12 19:44:49 -04:00
Jose Diaz-Gonzalez
30a15aaa7a fix: respect pre-deploy task image manipulation
This requires a bc-incompatible break in terms of what triggers the pre-deploy hook (dokku internals vs schedulers).
2021-08-05 04:17:21 -04:00
Jose Diaz-Gonzalez
8fc0cb67ec chore: drop unnecessary line stripping
Since this comes out of ps-current-scale, we can ensure the contents are always valid.
2021-08-01 16:33:42 -04:00
Jose Diaz-Gonzalez
550a0bd07b fix: properly parse input from ps-current-scale 2021-08-01 01:53:46 -04:00
Jose Diaz-Gonzalez
213f7d224c refactor: use ps-current-scale instead of parsing DOKKU_SCALE file when iterating over deployed processes 2021-08-01 01:43:35 -04:00
Jose Diaz-Gonzalez
d666d67877 fix: do not attempt to retire when there was no pre-existing container 2021-06-12 13:55:35 -04:00
Jose Diaz-Gonzalez
b16e5516bf fix: properly quote traps with variables 2021-06-09 01:17:48 -04:00
Jose Diaz-Gonzalez
bf7d6f40ce refactor: schedule a retire as early as possible
Rather than wait for all containers to come up successfully, immediately schedule a retirement of the old container. We'll still perform a disown'd removal after a successful deploy, but we _also_ schedule a retirement when:

- the new container is run successfully, before we update the container id file
- the new container fails and we run the kill_new command (the schedule is there to ensure removal if the container removal commands fail)

Closes #4576
2021-06-06 17:04:49 -04:00
Jose Diaz-Gonzalez
1ec71cd509 refactor: switch detected builder so first one wins
Also rename internal cnb references to pack (where possible).
2021-02-28 16:19:41 -05:00
Jose Diaz-Gonzalez
8ca713f6bb fix: handle empty start command for cnb apps
We should instead fetch the command from the Procfile.
2021-02-11 06:53:48 -05:00
Jose Diaz-Gonzalez
812e34c6f5 feat: properly export env vars for cnb apps
They are not baked into the image like they are for herokuish, so we need to manually set them via --env. Additionally, due to newline constraints in docker, we need to use `--env=key` format to correctly pull the values into place.
2021-02-11 03:52:02 -05:00
Jose Diaz-Gonzalez
33d5dd44d9 refactor: pull container creation into standalone function
this is necessary for us to be able to inject env vars into the call.
2021-02-11 03:50:08 -05:00
Jose Diaz-Gonzalez
49a2f8ab82 fix: properly specify as argument array 2021-02-11 02:21:43 -05:00
Jose Diaz-Gonzalez
25ab915883 refactor: standardize on using long-form and equal sign for docker arguments 2021-02-11 02:21:16 -05:00
Jose Diaz-Gonzalez
0963c403ab refactor: simplify container creation call 2021-02-10 11:18:12 -05:00
Jose Diaz-Gonzalez
08fdfd1e38 feat: drop internal calls to verify_app_name 2020-12-27 15:14:11 -05:00
Jose Diaz-Gonzalez
0786954d34 feat: schedule related images for cleanup when retiring containers
If the containers no longer exist and the images are unused, we should remove the images as well.

Note that images may sometimes stick around for a little while, depending on the retire schedule and the wait time specified for the container.

Closes #4104
2020-11-26 03:21:45 -05:00
Jose Diaz-Gonzalez
5b21cabff3 Merge pull request #4128 from mailformfemi/master
Added the container index to the network-compute-ports trigger
2020-11-21 23:08:06 -05:00
Jose Diaz-Gonzalez
024ff6e489 chore: remove todone :) 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
ebdf38e136 refactor: use procfile-get-command plugin trigger instead of direct ps function calls 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
236a279793 chore: add todos 2020-11-21 20:57:33 -05:00
Femi Omojola
81512504a7 Added the container index to the network-compute-ports trigger: useful for alternative proxy implementations. Updated the documentation for the network-compute-ports trigger to clarify the arguments 2020-09-08 09:26:35 -04:00
Jose Diaz-Gonzalez
38a13ecd39 feat: expose network listeners to nginx templates for all process types
This change allows users to specify a custom nginx.conf.sigil that can expose non-web process types to the outside world in addition to the web process type.

Closes #3258
2020-03-11 12:34:38 -04:00
Jose Diaz-Gonzalez
de84a038d2 feat: inject a com.dokku.dyno label
This is useful for external tools that monitor based on container labels.
2020-02-18 01:33:40 -05:00
Jose Diaz-Gonzalez
7357579af2 refactor: standardize trigger code 2020-02-10 02:40:59 -05:00
Jose Diaz-Gonzalez
9818cc6461 feat: implement container network attaching
Containers can be attached:

- after they are created, but before they are started
- after a successful deploy, but before the proxy reloads

This allows folks to have flexibility around when they would like a container to be made available to a network.
2020-02-08 19:55:29 -05:00
Jose Diaz-Gonzalez
8eb32e4371 feat: add process-type label to running containers 2020-02-08 19:53:30 -05:00
Tan Jay Jun
e425092d00 fix: reap orphaned processes with --init 2020-02-03 05:34:43 -05:00
Jose Diaz-Gonzalez
4613efe191 refactor: docker-args-process rework trigger arguments
The IMAGE_TAG is not always available, while the IMAGE_SOURCE_TYPE is. Since the point of these triggers was to unify the argument passed and make it easier to interact with them, this version makes more sense.

Closes #3780
2020-02-01 16:18:13 -08:00
Jose Diaz-Gonzalez
a3a37a1948 feat: minimize number of check-related output messages 2019-11-23 10:16:55 -05:00
Michael Hobbs
972830a5f3 fix: respect DOKKU_APP_USER in is_image_herokuish_based 2019-11-19 15:07:29 -07:00
Jose Diaz-Gonzalez
498bdd0491 chore: cleanup build and destroy logging output 2019-09-20 12:31:19 -04:00
Jose Diaz-Gonzalez
44fcea0ffa refactor: use new-style docker management commands
This PR uses the new syntax for commands introduced in Docker 1.13, making it a bit easier to understand just what a particular command is trying to do.

This also pushes the long-form syntax for docker command flags, which are also easier to understand at a glance.
2019-09-15 18:55:53 -04:00
Jose Diaz-Gonzalez
92d2895d99 feat: add container-type to run and deploy containers 2019-09-15 17:17:56 -04:00
Jose Diaz-Gonzalez
0c3f659854 feat: allow users to customize the container start command
This can be useful when testing base images that are similar to herokuish but have a different entrypoint.
2019-08-20 17:12:18 -04:00
Jose Diaz-Gonzalez
9a2c8e04a5 feat: quiet down deploys 2019-08-12 17:39:01 -04:00
Jose Diaz-Gonzalez
6836e56b24 refactor: add global docker build and run args
This reduces duplication and allows users to rely on global arguments to generate most labels needed.

The 'commit' command cannot have global arguments because the whitespace within the label change breaks string-based interpolation, and shell arrays cannot be exported.
2019-07-20 05:52:20 -04:00
Jose Diaz-Gonzalez
d1af10fc51 feat: add labels to all build, commit, create, and run docker calls
This will allow us to further filter containers and images by application when cleaning up containers.

Refs #3515
2019-07-19 15:45:43 -04:00