Commit Graph

3172 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
fc59b39874 chore: use quote around entire argument 2023-09-05 20:45:01 -04:00
kurt
c18af09f52 use app name instead of test 2023-09-02 23:11:53 -06:00
Dokku Bot
bf4d5fce02 Release 0.31.2
# History

## 0.31.2

Install/update via the bootstrap script:

```shell
wget -NP . https://dokku.com/install/v0.31.2/bootstrap.sh
sudo DOKKU_TAG=v0.31.2 bash bootstrap.sh
```

### Bug Fixes

- #6154: @josegonzalez Ensure app clones have domains setup
- #6164: @josegonzalez Use correct path for openresty letsencrypt data
- #6165: @josegonzalez Ensure we cleanup extracted files prior to next deployment
- #6166: @josegonzalez Remove unused source from openresty trigger
- #6163: @josegonzalez Add missing triggers for openresty-vhosts plugin
- #6151: @josegonzalez Do not pass an empty argument to scheduler-run when triggering cron tasks manually
- #6150: @josegonzalez Correct issue where temp file cleanup fails deploy

### Documentation

- #6167: @josegonzalez Correct svg path on homepage
- #6153: @imankulov Fix superscript typos in plugin documentation

### Tests

- #6152: @josegonzalez Use buildjet for building arm images
- #6149: @josegonzalez Fix issue where CI cannot install docker-compose-plugin

### Dependencies

- #6161: @josegonzalez Upgrade sigil to 0.10.1
- #6162: @josegonzalez Upgrade herokuish to 0.7.1
- #6160: @josegonzalez Upgrade sshcommand to 0.17.1
- #6159: @josegonzalez Upgrade procfile-util to 0.16.0
- #6158: @josegonzalez Upgrade netrc to 0.7.1
- #6157: @josegonzalez Upgrade lambda-builder to 0.5.0
- #6147: @dependabot[bot] chore(deps): bump tj-actions/changed-files from 37.6.1 to 38.1.0
- #6145: @dependabot[bot] chore(deps): bump mkdocs-material from 9.2.2 to 9.2.3 in /docs/_build
- #6139: @dependabot[bot] chore(deps): bump flask from 2.3.2 to 2.3.3 in /tests/apps/multi
- #6140: @dependabot[bot] chore(deps): bump flask from 2.3.2 to 2.3.3 in /tests/apps/python-flask
- #6141: @dependabot[bot] chore(deps): bump mkdocs-material from 9.1.21 to 9.2.2 in /docs/_build

### Other

- #6148: @josegonzalez Add missing relabel command to docker-image-labeler for CNB builder
2023-08-28 04:08:55 +00:00
Jose Diaz-Gonzalez
71214be1bd fix: ensure app clones have domains setup
Closes #6146
2023-08-27 23:00:18 -04:00
Jose Diaz-Gonzalez
fb5b605c4a Merge pull request #6164 from dokku/openresty-correct-data-dir
Use correct path for openresty letsencrypt data
2023-08-27 21:29:12 -04:00
Jose Diaz-Gonzalez
fecb9e0472 fix: ensure we cleanup extracted files prior to next deployment 2023-08-27 20:00:45 -04:00
Jose Diaz-Gonzalez
196fadc6d3 fix: use correct path for openresty letsencrypt data
Paths are plugin-specific, and the previous path used the plugin alias, not the actual plugin name.
2023-08-27 20:00:37 -04:00
Jose Diaz-Gonzalez
49297f6554 fix: remove unused source 2023-08-27 19:23:07 -04:00
Jose Diaz-Gonzalez
17c32e2dac fix: add missing triggers for openresty-vhosts plugin 2023-08-27 17:43:38 -04:00
Jose Diaz-Gonzalez
d867a4d77e Merge pull request #6151 from dokku/josegonzalez-patch-1
Do not pass an empty argument to scheduler-run when triggering cron tasks manually
2023-08-26 17:06:20 -04:00
Jose Diaz-Gonzalez
5d362d8038 Merge pull request #6150 from dokku/fix-tmp-file-cleanup
Correct issue where temp file cleanup fails deploy
2023-08-26 17:06:08 -04:00
Jose Diaz-Gonzalez
b8b40ac672 fix: do not pass an empty argument to scheduler-run when triggering cron tasks manually 2023-08-26 15:19:12 -04:00
Jose Diaz-Gonzalez
fbe823b7d7 fix: correct issue where temp file cleanup fails deploy 2023-08-26 14:39:13 -04:00
Jose Diaz-Gonzalez
c2db3ddaba fix: add missing relabel command to docker-image-labeler for CNB builder
Closes #6138
2023-08-26 14:33:51 -04:00
Dokku Bot
46b0015de8 Release 0.31.1
# History

## 0.31.1

Install/update via the bootstrap script:

```shell
wget -NP . https://dokku.com/install/v0.31.1/bootstrap.sh
sudo DOKKU_TAG=v0.31.1 bash bootstrap.sh
```

### Bug Fixes

- #6133: @josegonzalez Properly handle tag and branch pushes
- #6131: @josegonzalez Ensure tmp files are cleaned up when commands exit
- #6130: @josegonzalez Correct package for container healthchecker when building digitalocean image
- #6121: @josegonzalez Add missing error-log-path function to openresty plugin

### Documentation

- #6129: @josegonzalez Cleanup markdown and use Github Admonitions

### Dependencies

- #6120: @dependabot[bot] chore(deps): bump click from 8.1.6 to 8.1.7 in /docs/_build
- #6119: @dependabot[bot] chore(deps): bump tj-actions/changed-files from 37.6.0 to 37.6.1
- #6118: @dependabot[bot] chore(deps): bump werkzeug from 2.3.6 to 2.3.7 in /tests/apps/python-flask
- #6115: @dependabot[bot] chore(deps): bump golang from 1.20.7 to 1.21.0 in /tests/apps/zombies-dockerfile-no-tini
- #6114: @dependabot[bot] chore(deps): bump golang from 1.20.7 to 1.21.0 in /tests/apps/zombies-dockerfile-tini
- #6104: @dependabot[bot] chore(deps): bump golang.org/x/net from 0.13.0 to 0.14.0 in /tests/apps/gogrpc
- #6113: @dependabot[bot] chore(deps): bump golang from 1.20.7 to 1.21.0 in /tests/apps/go-fail-predeploy
- #6112: @dependabot[bot] chore(deps): bump golang from 1.20.7 to 1.21.0 in /tests/apps/go-fail-postdeploy
- #6111: @dependabot[bot] chore(deps): bump golang from 1.20.7 to 1.21.0 in /tests/apps/gogrpc
- #6107: @dependabot[bot] chore(deps): bump pygments from 2.15.1 to 2.16.1 in /docs/_build
- #6106: @dependabot[bot] chore(deps): bump tj-actions/changed-files from 37.5.2 to 37.6.0
- #6105: @dependabot[bot] chore(deps): bump sinatra from 3.0.6 to 3.1.0 in /tests/apps/ruby

### Other

- #6122: @josegonzalez Plugin trigger and event cleanup
2023-08-20 16:30:06 +00:00
Jose Diaz-Gonzalez
a254525db8 Merge pull request #6133 from dokku/5188-fix-tag-push
Properly handle tag and branch pushes
2023-08-20 12:28:04 -04:00
Jose Diaz-Gonzalez
d3441b7f7e fix: properly handle tag and branch pushes 2023-08-20 11:39:19 -04:00
Jose Diaz-Gonzalez
200e46b08e fix: ensure tmp files are cleaned up when commands exit 2023-08-19 23:00:49 -04:00
Jose Diaz-Gonzalez
5cbeb326d6 Merge pull request #6121 from dokku/openresty-missing-funcs
Add missing error-log-path function to openresty plugin
2023-08-19 19:02:04 -04:00
Jose Diaz-Gonzalez
4450c82866 fix: set correct log root 2023-08-19 15:50:20 -04:00
Jose Diaz-Gonzalez
b13f7250ce fix: make app-list a symlink 2023-08-19 11:45:51 -04:00
Jose Diaz-Gonzalez
f0ed29d80f chore: remove now un-implemented event 2023-08-19 11:45:24 -04:00
Jose Diaz-Gonzalez
70a580f851 chore: remove unimplemented and undocumented event 2023-08-19 11:45:17 -04:00
Jose Diaz-Gonzalez
4d87dfcc33 fix: add missing events for all plugn triggers 2023-08-19 11:45:06 -04:00
Jose Diaz-Gonzalez
18216e8e48 chore: remove events for non-existing triggers 2023-08-19 11:44:41 -04:00
Jose Diaz-Gonzalez
4378d0c367 fix: add missing error-log-path function to openresty plugin
Also ensure the access-log-path is passed into the plugin.
2023-08-19 10:23:10 -04:00
Dokku Bot
4139fb1d7f Release 0.31.0
# History

## 0.31.0

Install/update via the bootstrap script:

```shell
wget -NP . https://dokku.com/install/v0.31.0/bootstrap.sh
sudo DOKKU_TAG=v0.31.0 bash bootstrap.sh
```

See the [0.31.0 migration guide](/docs/appendices/0.31.0-migration-guide.md) for more information on migrating to 0.31.0.

### Backwards Compatibility Breaks

- #6102: @josegonzalez Deprecate ARM as a build target
- #6029: @josegonzalez Provide users the ability to override auto-detected port mappings

### Bug Fixes

- #6110: @josegonzalez Correctly handle rebase when generating release notes for minor/major releases
- #6081: @josegonzalez Use correct namespace for haproxy service state tracking
- #6079: @josegonzalez Remove debugging code from builder-dockerfile plugin
- #6078: @josegonzalez Use correct quoting in format template when fetching exposed image ports
- #6070: @josegonzalez Do not write empty values for nginx container labels
- #6014: @josegonzalez Automatically clear the git source-image property when changing deployment methodologies
- #5985: @josegonzalez Mount the traefik data directory instead of the acme.json file when starting traefik
- #5979: @josegonzalez Do not start proxy implementations during server restore if they weren't manually started via the :start command
- #5973: @josegonzalez Remove all containers and images by label on app destroy

### New Features

- #6100: @josegonzalez Add support for non-web healthchecks via app.json
- #6098: @josegonzalez Upgrade traefik image from v2.8 to v2.10
- #6097: @josegonzalez Upgrade caddy image from 2.7 to 2.8
- #6082: @josegonzalez Add openresty proxy implementation
- #6057: @josegonzalez Inject docker labels when nginx proxy implementation is in use
- #6043: @josegonzalez Write auto-detected port mappings during a deploy
- #6013: @josegonzalez Export environment variables during dockerfile builds for use with value-less --build-arg flags
- #6007: @Firfi Add application/wasm to nginx.conf.sigil gzip
- #5993: @josegonzalez Un-deprecate apps and config cli aliases
- #5992: @josegonzalez Mount the vector data directory instead of the vector file
- #5991: @josegonzalez Add the ability to execute a cron task on the fly
- #5990: @josegonzalez Add json format output to cron:list command
- #5989: @josegonzalez Skip scaled processes that are missing in the Procfile
- #5978: @josegonzalez Export environment variables during dockerfile builds for use with value-less --build-arg flags
- #5908: @josegonzalez Generate jobs for crontab in parallel
- #5891: @josegonzalez Add support for specifying multiple networks on a given app

### Refactors

- #6042: @josegonzalez Rename port-map property to port
- #6021: @josegonzalez Simplify ports-configure codebase
- #6018: @josegonzalez Move code that fetches raw tcp ports for dockerfile deploys to ports plugin
- #6017: @josegonzalez Deprecate proxy-configure-ports plugin trigger in favor of ports-configure
- #6011: @josegonzalez Use ports-get plugn trigger for fetching port mappings
- #6010: @josegonzalez Use ports-clear plugn trigger to manage clearing the port map
- #5988: @josegonzalez Move crontab writing code to scheduler-docker-local plugin
- #5975: @josegonzalez Standardize on shorthand for redirecting all output to /dev/null
- #5974: @josegonzalez Standardize on ls subcommand when interacting with the docker binary

### Documentation

- #6116: @josegonzalez Remove extra newline in migration docs
- #6099: @josegonzalez Clean up references in proxy plugins
- #5987: @josegonzalez Clarify that a branch can be specified when updating a plugin

### Tests

- #6103: @josegonzalez Timeout docker image builds in CI
- #6101: @josegonzalez Make it possible to specify an alternative base domain for tests
- #6095: @josegonzalez Remove assertion for unconsumed build arguments
- #6094: @josegonzalez Correct assertion for dockerfile builds when a variable is eval'd
- #6080: @josegonzalez Add assertions to various bats tests
- #6076: @josegonzalez Use assert_output_not_exists instead of asserting output is empty string
- #6075: @josegonzalez Use an alternative curl request to ensure requests go to the local nginx
- #6074: @josegonzalez Fix issue where networks weren't being torn down during testing
- #6012: @josegonzalez Use ports:report to get the list of port mappings
- #5977: @josegonzalez Move all shellcheck disable definitions to .shellcheckrc
- #5976: @josegonzalez Remove Stickler configuration

### Other

- #6109: @josegonzalez Make heroku-22/jammy the default stack for cnb/herokuish builds
- #6096: @josegonzalez Upgrade vector image from 0.23.x to 0.31.x
- #6019: @josegonzalez Move code for fetching an available port to the ports plugin
- #6015: @josegonzalez Move CHECKS file extraction to the beginning of the deploy
- #5995: @josegonzalez Migrate the proxy port map from config variable to property system
- #5986: @josegonzalez Move all port management code to standalone ports plugin
- #5495: @josegonzalez Move herokuish app cache from the filesystem into a docker volume
2023-08-14 02:08:52 +00:00
Jose Diaz-Gonzalez
038b768585 fix: correct version 2023-08-13 21:54:25 -04:00
Jose Diaz-Gonzalez
26e9cc9b8c feat: add support for non-web healthchecks via app.json
This change converts existing CHECKS files into a healthchecks key that is understood by 'docker-container-healthchecker'. This tool supports a number of different types of container healthchecks - command, http, uptime - and can perform healthchecks against non-web processes.

The use of the old CHECKS file is now deprecated, and will be removed in the next minor version. Users can use the 'docker-container-healthchecker' to convert existing CHECKS files to the new format automatically.

Closes #2760
2023-08-06 17:23:13 -04:00
Jose Diaz-Gonzalez
625ea14c8f feat: add openresty proxy implementation
This plugin is mostly compatible with the nginx plugin, but runs the proxy within a docker container. Users do not have direct access to add custom openresty configuration at this time, but instead receive the ability to setup automatic ssl on first request via letsencrypt integration.
2023-08-05 20:59:01 -04:00
Jose Diaz-Gonzalez
7f7a044a07 docs: clean up references in proxy plugins 2023-08-05 11:07:55 -04:00
Jose Diaz-Gonzalez
f8ccf52079 refactor: only use detected port mapping if override is not specified
Previously, we would always set the port mapping during a dockerfile build, making it difficult for users to override mappings. We also only _sometimes_ updated the detected port mapping, further confusing issues when users were migrating from Dockerfile to Buildpacks for builds.

Now, we always detect the port mapping during the build process, and only use that detected port mapping if an override is not specified. This greatly simplifies the experience around port mapping, as now a user can create an app, set a port mapping, and that first deploy will respect the port mapping without an additional deploy.

The builder always has the best context for what the app should be listening on, and thus we can always specify a "default" port mapping at this stage. Users can override this map as desired later.

This change also results in the removal of a ton of internal code that is now centralized in the ports plugin.

Closes #4067
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
d06f337c3c feat: upgrade traefik image from v2.8 to v2.10 2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
3218a496c5 feat: upgrade caddy image from 2.7 to 2.8 2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
56e18be2cf feat: upgrade vector image from 0.23.x to 0.31.x 2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
aee691a5fb fix: use correct namespace for haproxy service state tracking 2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
69e56fc976 fix: remove debugging code from builder-dockerfile plugin 2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
c1279468d8 fix: use correct quoting in format template when fetching exposed image ports 2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
04905bf553 fix: run go mod update 2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
2b1e173c03 fix: do not write empty values for nginx container labels
This ensures the nginx-docker-proxy project doesn't use the empty values as explicit values.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
3f127a7cc4 feat: inject docker labels when nginx proxy implementation is in use
This will allow users to switch to a docker label-based nginx proxy server transparently without rebuilds (after the first one), which would mimic how the caddy, haproxy, and traefik proxy implementations work.

See https://github.com/dokku/nginx-docker-proxy for an example server implementation.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
4bc3de5540 feat: write auto-detected port mappings during a deploy
During an app build, we now auto-detect ports based on the source code. This is usually http:80:5000, with Dockerfile-based deploys having their ports extracted from the docker image or Dockerfile. Additionally, we add an https:443 mapping for any detected http:80 mapping when there is an ssl certificate, and all http port mappings are transformed to https mappings for Dockerfile-based deploys.

While the ports aren't currently consumed, a future refactor will provide the ability to fallback to the new detected ports when there is no user-specified port mapping.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
b44be8def9 refactor: rename port-map property to port 2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
f842869c3d refactor: move the proxy port map from config to property
Also remove all direct references to DOKKU_PROXY_PORT_MAP from outside of ports.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
977b4567f8 refactor: simplify ports-configure codebase
This makes it slightly easier to reason about, at the cost of being slower.

Also ignore failure to remove image as this was flaky.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
48d5820b8c refactor: deprecate proxy-configure-ports plugin trigger in favor of ports-configure
This also rewrites the logic to be in golang, which will make it easier to refactor portions of it to use the property system going forward.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
192f7cf768 refactor: move code for fetching an available port to the ports plugin
Also translate the code to golang.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
121e4737a8 refactor: move code that fetches raw tcp ports for dockerfile deploys to ports plugin 2023-08-05 10:58:57 -04:00
Igor Loskutov
bdf0b6c509 Add application/wasm to nginx.conf.sigil gzip 2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
1431724b85 feat: use ports-clear plugn trigger to manage clearing the port map
This removes any access to the underlying implementation for port map clearing, which will make it easier to refactor the actual clearing.
2023-08-05 10:58:57 -04:00