From 8524ee3a3ac17720e8d9a90d9e54fadad6d16029 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 25 Aug 2024 00:23:50 -0400 Subject: [PATCH 01/79] chore: update go version to latest 1.23 patch --- common.mk | 2 +- go.work | 2 +- plugins/app-json/go.mod | 2 +- plugins/apps/go.mod | 2 +- plugins/builder/go.mod | 2 +- plugins/buildpacks/go.mod | 2 +- plugins/common/go.mod | 2 +- plugins/config/go.mod | 2 +- plugins/cron/go.mod | 2 +- plugins/docker-options/go.mod | 2 +- plugins/logs/go.mod | 2 +- plugins/network/go.mod | 2 +- plugins/nginx-vhosts/go.mod | 2 +- plugins/ports/go.mod | 2 +- plugins/proxy/go.mod | 2 +- plugins/ps/go.mod | 2 +- plugins/registry/go.mod | 2 +- plugins/repo/go.mod | 2 +- plugins/resource/go.mod | 2 +- plugins/scheduler-docker-local/go.mod | 2 +- plugins/scheduler-k3s/go.mod | 2 +- plugins/scheduler/go.mod | 2 +- tests/apps/gogrpc/go.mod | 2 +- tests/apps/zombies-buildpack/go.mod | 2 +- tests/apps/zombies-dockerfile-no-tini/go.mod | 2 +- tests/apps/zombies-dockerfile-tini/go.mod | 2 +- 26 files changed, 26 insertions(+), 26 deletions(-) diff --git a/common.mk b/common.mk index 0c3f911b7..d6a00a5a6 100644 --- a/common.mk +++ b/common.mk @@ -1,7 +1,7 @@ GO_ARGS ?= GO_PLUGIN_MAKE_TARGET ?= build GO_REPO_ROOT := /go/src/github.com/dokku/dokku -BUILD_IMAGE := golang:1.21.13 +BUILD_IMAGE := golang:1.23.0 GO_BUILD_CACHE ?= /tmp/dokku-go-build-cache GO_MOD_CACHE ?= /tmp/dokku-go-mod-mod GO_ROOT_MOUNT ?= $$PWD/../..:$(GO_REPO_ROOT) diff --git a/go.work b/go.work index 229ef2363..e94ab88cb 100644 --- a/go.work +++ b/go.work @@ -1,4 +1,4 @@ -go 1.21 +go 1.23 use ( ./plugins/app-json diff --git a/plugins/app-json/go.mod b/plugins/app-json/go.mod index 88d40f600..8939619a9 100644 --- a/plugins/app-json/go.mod +++ b/plugins/app-json/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/app-json -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/apps/go.mod b/plugins/apps/go.mod index d3cb6b0fb..8ad3dce81 100644 --- a/plugins/apps/go.mod +++ b/plugins/apps/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/apps -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/builder/go.mod b/plugins/builder/go.mod index 87b5c105b..dce44335e 100644 --- a/plugins/builder/go.mod +++ b/plugins/builder/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/builder -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/buildpacks/go.mod b/plugins/buildpacks/go.mod index 5cf1bda00..5a6a4868b 100644 --- a/plugins/buildpacks/go.mod +++ b/plugins/buildpacks/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/buildpacks -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/common/go.mod b/plugins/common/go.mod index 0fd7487f7..c0cdccf22 100644 --- a/plugins/common/go.mod +++ b/plugins/common/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/common -go 1.21 +go 1.23 require ( github.com/alexellis/go-execute/v2 v2.2.1 diff --git a/plugins/config/go.mod b/plugins/config/go.mod index c91ff877b..dc421974f 100644 --- a/plugins/config/go.mod +++ b/plugins/config/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/config -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/cron/go.mod b/plugins/cron/go.mod index ecdace0ac..ee9633078 100644 --- a/plugins/cron/go.mod +++ b/plugins/cron/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/cron -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/app-json v0.0.0-00010101000000-000000000000 diff --git a/plugins/docker-options/go.mod b/plugins/docker-options/go.mod index a83baf921..c103b375a 100644 --- a/plugins/docker-options/go.mod +++ b/plugins/docker-options/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/docker-options -go 1.21 +go 1.23 require github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/logs/go.mod b/plugins/logs/go.mod index e1271e901..93ca5b36b 100644 --- a/plugins/logs/go.mod +++ b/plugins/logs/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/logs -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/network/go.mod b/plugins/network/go.mod index f6743c918..15f947dc7 100644 --- a/plugins/network/go.mod +++ b/plugins/network/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/network -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/nginx-vhosts/go.mod b/plugins/nginx-vhosts/go.mod index b5dd97ade..07bedf1be 100644 --- a/plugins/nginx-vhosts/go.mod +++ b/plugins/nginx-vhosts/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/nginx-vhosts -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/ports/go.mod b/plugins/ports/go.mod index 9c2ea5ae6..885c07b8c 100644 --- a/plugins/ports/go.mod +++ b/plugins/ports/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/ports -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/proxy/go.mod b/plugins/proxy/go.mod index 9cda27fa6..9f7f489d7 100644 --- a/plugins/proxy/go.mod +++ b/plugins/proxy/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/proxy -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/ps/go.mod b/plugins/ps/go.mod index 811f09939..efa291f72 100644 --- a/plugins/ps/go.mod +++ b/plugins/ps/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/ps -go 1.21 +go 1.23 toolchain go1.22.5 diff --git a/plugins/registry/go.mod b/plugins/registry/go.mod index 3f7b6b2ac..c0eb84cb3 100644 --- a/plugins/registry/go.mod +++ b/plugins/registry/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/registry -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/repo/go.mod b/plugins/repo/go.mod index 67141dd2b..53d79fc0b 100644 --- a/plugins/repo/go.mod +++ b/plugins/repo/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/repo -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/resource/go.mod b/plugins/resource/go.mod index 25830faeb..c7f0e4469 100644 --- a/plugins/resource/go.mod +++ b/plugins/resource/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/resource -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/scheduler-docker-local/go.mod b/plugins/scheduler-docker-local/go.mod index 25f11a4cd..bb2ba52fc 100644 --- a/plugins/scheduler-docker-local/go.mod +++ b/plugins/scheduler-docker-local/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/scheduler-docker-local -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/plugins/scheduler-k3s/go.mod b/plugins/scheduler-k3s/go.mod index 3eaa2871b..f749030c1 100644 --- a/plugins/scheduler-k3s/go.mod +++ b/plugins/scheduler-k3s/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/scheduler-k3s -go 1.21 +go 1.23 require ( github.com/cert-manager/cert-manager v1.13.3 diff --git a/plugins/scheduler/go.mod b/plugins/scheduler/go.mod index 7cb3cccda..bda8c9990 100644 --- a/plugins/scheduler/go.mod +++ b/plugins/scheduler/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokku/plugins/scheduler -go 1.21 +go 1.23 require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 diff --git a/tests/apps/gogrpc/go.mod b/tests/apps/gogrpc/go.mod index 112f9c387..79c892c76 100644 --- a/tests/apps/gogrpc/go.mod +++ b/tests/apps/gogrpc/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokko/tests/apps/gorpc -go 1.21 +go 1.23 require ( golang.org/x/net v0.25.0 // indirect diff --git a/tests/apps/zombies-buildpack/go.mod b/tests/apps/zombies-buildpack/go.mod index eb7c2644e..629a5d967 100644 --- a/tests/apps/zombies-buildpack/go.mod +++ b/tests/apps/zombies-buildpack/go.mod @@ -1,3 +1,3 @@ module dokku.me/web -go 1.21 +go 1.23 diff --git a/tests/apps/zombies-dockerfile-no-tini/go.mod b/tests/apps/zombies-dockerfile-no-tini/go.mod index eb7c2644e..629a5d967 100644 --- a/tests/apps/zombies-dockerfile-no-tini/go.mod +++ b/tests/apps/zombies-dockerfile-no-tini/go.mod @@ -1,3 +1,3 @@ module dokku.me/web -go 1.21 +go 1.23 diff --git a/tests/apps/zombies-dockerfile-tini/go.mod b/tests/apps/zombies-dockerfile-tini/go.mod index eb7c2644e..629a5d967 100644 --- a/tests/apps/zombies-dockerfile-tini/go.mod +++ b/tests/apps/zombies-dockerfile-tini/go.mod @@ -1,3 +1,3 @@ module dokku.me/web -go 1.21 +go 1.23 From adde8c49e028463eddf2e7a50a38b7736788f8c1 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 25 Aug 2024 00:24:19 -0400 Subject: [PATCH 02/79] chore: run bump-modules --- plugins/ps/go.mod | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/ps/go.mod b/plugins/ps/go.mod index efa291f72..8c1a17273 100644 --- a/plugins/ps/go.mod +++ b/plugins/ps/go.mod @@ -2,8 +2,6 @@ module github.com/dokku/dokku/plugins/ps go 1.23 -toolchain go1.22.5 - require ( github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000 github.com/dokku/dokku/plugins/config v0.0.0-00010101000000-000000000000 From c5a0935c4549fc75fcbde13679c13f5b2a7d6559 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 25 Aug 2024 01:24:20 -0400 Subject: [PATCH 03/79] fix: revert go version in test go.mod files The herokuish version shipped as a dependency doesn't yet support this version. --- tests/apps/gogrpc/go.mod | 2 +- tests/apps/zombies-buildpack/go.mod | 2 +- tests/apps/zombies-dockerfile-no-tini/go.mod | 2 +- tests/apps/zombies-dockerfile-tini/go.mod | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/apps/gogrpc/go.mod b/tests/apps/gogrpc/go.mod index 79c892c76..dbb80f3cc 100644 --- a/tests/apps/gogrpc/go.mod +++ b/tests/apps/gogrpc/go.mod @@ -1,6 +1,6 @@ module github.com/dokku/dokko/tests/apps/gorpc -go 1.23 +go 1.22 require ( golang.org/x/net v0.25.0 // indirect diff --git a/tests/apps/zombies-buildpack/go.mod b/tests/apps/zombies-buildpack/go.mod index 629a5d967..a4840e7a2 100644 --- a/tests/apps/zombies-buildpack/go.mod +++ b/tests/apps/zombies-buildpack/go.mod @@ -1,3 +1,3 @@ module dokku.me/web -go 1.23 +go 1.22 diff --git a/tests/apps/zombies-dockerfile-no-tini/go.mod b/tests/apps/zombies-dockerfile-no-tini/go.mod index 629a5d967..a4840e7a2 100644 --- a/tests/apps/zombies-dockerfile-no-tini/go.mod +++ b/tests/apps/zombies-dockerfile-no-tini/go.mod @@ -1,3 +1,3 @@ module dokku.me/web -go 1.23 +go 1.22 diff --git a/tests/apps/zombies-dockerfile-tini/go.mod b/tests/apps/zombies-dockerfile-tini/go.mod index 629a5d967..a4840e7a2 100644 --- a/tests/apps/zombies-dockerfile-tini/go.mod +++ b/tests/apps/zombies-dockerfile-tini/go.mod @@ -1,3 +1,3 @@ module dokku.me/web -go 1.23 +go 1.22 From 7cdb059d347e51846b7b43e7c655329e7cbbdd92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 17:32:11 +0000 Subject: [PATCH 04/79] chore(deps): bump mvdan.cc/sh/v3 from 3.8.0 to 3.9.0 in /plugins/cron Bumps [mvdan.cc/sh/v3](https://github.com/mvdan/sh) from 3.8.0 to 3.9.0. - [Release notes](https://github.com/mvdan/sh/releases) - [Changelog](https://github.com/mvdan/sh/blob/master/CHANGELOG.md) - [Commits](https://github.com/mvdan/sh/compare/v3.8.0...v3.9.0) --- updated-dependencies: - dependency-name: mvdan.cc/sh/v3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- plugins/cron/go.mod | 2 +- plugins/cron/go.sum | 8 ++++---- plugins/scheduler-docker-local/go.mod | 2 +- plugins/scheduler-docker-local/go.sum | 8 ++++---- plugins/scheduler-k3s/go.mod | 2 +- plugins/scheduler-k3s/go.sum | 6 ++++-- 6 files changed, 15 insertions(+), 13 deletions(-) diff --git a/plugins/cron/go.mod b/plugins/cron/go.mod index ee9633078..6bc7c93af 100644 --- a/plugins/cron/go.mod +++ b/plugins/cron/go.mod @@ -9,7 +9,7 @@ require ( github.com/robfig/cron/v3 v3.0.1 github.com/ryanuber/columnize v2.1.2+incompatible github.com/spf13/pflag v1.0.5 - mvdan.cc/sh/v3 v3.8.0 + mvdan.cc/sh/v3 v3.9.0 ) require ( diff --git a/plugins/cron/go.sum b/plugins/cron/go.sum index e8f2451c8..3ef2553c2 100644 --- a/plugins/cron/go.sum +++ b/plugins/cron/go.sum @@ -5,8 +5,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= -github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= -github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI= +github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= @@ -108,5 +108,5 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ= k8s.io/utils v0.0.0-20240102154912-e7106e64919e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -mvdan.cc/sh/v3 v3.8.0 h1:ZxuJipLZwr/HLbASonmXtcvvC9HXY9d2lXZHnKGjFc8= -mvdan.cc/sh/v3 v3.8.0/go.mod h1:w04623xkgBVo7/IUK89E0g8hBykgEpN0vgOj3RJr6MY= +mvdan.cc/sh/v3 v3.9.0 h1:it14fyjCdQUk4jf/aYxLO3FG8jFarR9GzMCtnlvvD7c= +mvdan.cc/sh/v3 v3.9.0/go.mod h1:cdBk8bgoiBI7lSZqK5JhUuq7OB64VQ7fgm85xelw3Nk= diff --git a/plugins/scheduler-docker-local/go.mod b/plugins/scheduler-docker-local/go.mod index bb2ba52fc..cc66598b0 100644 --- a/plugins/scheduler-docker-local/go.mod +++ b/plugins/scheduler-docker-local/go.mod @@ -29,7 +29,7 @@ require ( golang.org/x/crypto v0.26.0 // indirect golang.org/x/sys v0.23.0 // indirect k8s.io/utils v0.0.0-20240102154912-e7106e64919e // indirect - mvdan.cc/sh/v3 v3.8.0 // indirect + mvdan.cc/sh/v3 v3.9.0 // indirect ) replace github.com/dokku/dokku/plugins/app-json => ../app-json diff --git a/plugins/scheduler-docker-local/go.sum b/plugins/scheduler-docker-local/go.sum index 830248a5d..eb6ee53bf 100644 --- a/plugins/scheduler-docker-local/go.sum +++ b/plugins/scheduler-docker-local/go.sum @@ -5,8 +5,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= -github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= -github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI= +github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= @@ -107,5 +107,5 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ= k8s.io/utils v0.0.0-20240102154912-e7106e64919e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -mvdan.cc/sh/v3 v3.8.0 h1:ZxuJipLZwr/HLbASonmXtcvvC9HXY9d2lXZHnKGjFc8= -mvdan.cc/sh/v3 v3.8.0/go.mod h1:w04623xkgBVo7/IUK89E0g8hBykgEpN0vgOj3RJr6MY= +mvdan.cc/sh/v3 v3.9.0 h1:it14fyjCdQUk4jf/aYxLO3FG8jFarR9GzMCtnlvvD7c= +mvdan.cc/sh/v3 v3.9.0/go.mod h1:cdBk8bgoiBI7lSZqK5JhUuq7OB64VQ7fgm85xelw3Nk= diff --git a/plugins/scheduler-k3s/go.mod b/plugins/scheduler-k3s/go.mod index f749030c1..b81d086f6 100644 --- a/plugins/scheduler-k3s/go.mod +++ b/plugins/scheduler-k3s/go.mod @@ -28,7 +28,7 @@ require ( k8s.io/kubectl v0.29.0 k8s.io/kubernetes v1.29.1 k8s.io/utils v0.0.0-20240102154912-e7106e64919e - mvdan.cc/sh/v3 v3.8.0 + mvdan.cc/sh/v3 v3.9.0 ) require ( diff --git a/plugins/scheduler-k3s/go.sum b/plugins/scheduler-k3s/go.sum index 0774d77f2..4a0fa3164 100644 --- a/plugins/scheduler-k3s/go.sum +++ b/plugins/scheduler-k3s/go.sum @@ -133,6 +133,8 @@ github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdX github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4= github.com/go-openapi/swag v0.22.7 h1:JWrc1uc/P9cSomxfnsFSVWoE1FW6bNbrVPmpQYpCcR8= github.com/go-openapi/swag v0.22.7/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= +github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI= +github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow= github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= @@ -595,8 +597,8 @@ k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCf k8s.io/utils v0.0.0-20240102154912-e7106e64919e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= knative.dev/pkg v0.0.0-20240116073220-b488e7be5902 h1:H6+JJN23fhwYWCHY1339sY6uhIyoUwDy1a8dN233fdk= knative.dev/pkg v0.0.0-20240116073220-b488e7be5902/go.mod h1:NYk8mMYoLkO7CQWnNkti4YGGnvLxN6MIDbUvtgeo0C0= -mvdan.cc/sh/v3 v3.8.0 h1:ZxuJipLZwr/HLbASonmXtcvvC9HXY9d2lXZHnKGjFc8= -mvdan.cc/sh/v3 v3.8.0/go.mod h1:w04623xkgBVo7/IUK89E0g8hBykgEpN0vgOj3RJr6MY= +mvdan.cc/sh/v3 v3.9.0 h1:it14fyjCdQUk4jf/aYxLO3FG8jFarR9GzMCtnlvvD7c= +mvdan.cc/sh/v3 v3.9.0/go.mod h1:cdBk8bgoiBI7lSZqK5JhUuq7OB64VQ7fgm85xelw3Nk= oras.land/oras-go v1.2.5 h1:XpYuAwAb0DfQsunIyMfeET92emK8km3W4yEzZvUbsTo= oras.land/oras-go v1.2.5/go.mod h1:PuAwRShRZCsZb7g8Ar3jKKQR/2A/qN+pkYxIOd/FAoo= sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= From 26acf44cbe9a3bd3e3c3d5f3c8de5f469a8dbbec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 13:27:15 +0000 Subject: [PATCH 05/79] chore(deps): bump timberio/vector in /plugins/logs Bumps timberio/vector from 0.39.0-debian to 0.40.0-debian. --- updated-dependencies: - dependency-name: timberio/vector dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- plugins/logs/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/logs/Dockerfile b/plugins/logs/Dockerfile index 432025e23..181b3f5a5 100644 --- a/plugins/logs/Dockerfile +++ b/plugins/logs/Dockerfile @@ -1 +1 @@ -FROM timberio/vector:0.39.0-debian +FROM timberio/vector:0.40.0-debian From 139dda07f903f35c8305f4a7ce397e6da6a81e69 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 22:05:48 +0000 Subject: [PATCH 06/79] chore(deps): bump github.com/traefik/traefik/v2 Bumps [github.com/traefik/traefik/v2](https://github.com/traefik/traefik) from 2.10.7 to 2.11.6. - [Release notes](https://github.com/traefik/traefik/releases) - [Changelog](https://github.com/traefik/traefik/blob/v2.11.6/CHANGELOG.md) - [Commits](https://github.com/traefik/traefik/compare/v2.10.7...v2.11.6) --- updated-dependencies: - dependency-name: github.com/traefik/traefik/v2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- plugins/scheduler-k3s/go.mod | 35 +++++++------ plugins/scheduler-k3s/go.sum | 97 ++++++++++++++++-------------------- 2 files changed, 60 insertions(+), 72 deletions(-) diff --git a/plugins/scheduler-k3s/go.mod b/plugins/scheduler-k3s/go.mod index b81d086f6..21ed4ec12 100644 --- a/plugins/scheduler-k3s/go.mod +++ b/plugins/scheduler-k3s/go.mod @@ -18,7 +18,7 @@ require ( github.com/kedacore/keda/v2 v2.13.0 github.com/ryanuber/columnize v2.1.2+incompatible github.com/spf13/pflag v1.0.5 - github.com/traefik/traefik/v2 v2.10.7 + github.com/traefik/traefik/v2 v2.11.6 golang.org/x/sync v0.8.0 gopkg.in/yaml.v3 v3.0.1 helm.sh/helm/v3 v3.14.2 @@ -34,7 +34,7 @@ require ( require ( github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect - github.com/BurntSushi/toml v1.3.2 // indirect + github.com/BurntSushi/toml v1.4.0 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect @@ -44,7 +44,7 @@ require ( github.com/alexellis/go-execute/v2 v2.2.1 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect github.com/containerd/containerd v1.7.11 // indirect @@ -65,10 +65,10 @@ require ( github.com/expr-lang/expr v1.15.8 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-acme/lego/v4 v4.14.0 // indirect + github.com/go-acme/lego/v4 v4.17.4 // indirect github.com/go-errors/errors v1.5.1 // indirect github.com/go-gorp/gorp/v3 v3.1.0 // indirect - github.com/go-jose/go-jose/v3 v3.0.3 // indirect + github.com/go-jose/go-jose/v4 v4.0.2 // indirect github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonreference v0.20.4 // indirect @@ -76,13 +76,13 @@ require ( github.com/gobwas/glob v0.2.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/google/btree v1.0.1 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/google/uuid v1.5.0 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/gorilla/websocket v1.5.1 // indirect github.com/gosimple/unidecode v1.0.1 // indirect @@ -108,7 +108,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect github.com/melbahja/goph v1.4.0 // indirect - github.com/miekg/dns v1.1.55 // indirect + github.com/miekg/dns v1.1.59 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect @@ -128,9 +128,9 @@ require ( github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/sftp v1.13.5 // indirect - github.com/prometheus/client_golang v1.18.0 // indirect + github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.46.0 // indirect + github.com/prometheus/common v0.48.0 // indirect github.com/prometheus/procfs v0.12.0 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect @@ -145,25 +145,24 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/xlab/treeprint v1.2.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect - go.opentelemetry.io/otel v1.22.0 // indirect - go.opentelemetry.io/otel/metric v1.22.0 // indirect - go.opentelemetry.io/otel/trace v1.22.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect go.starlark.net v0.0.0-20231121155337-90ade8b19d09 // indirect golang.org/x/crypto v0.26.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect golang.org/x/mod v0.19.0 // indirect golang.org/x/net v0.27.0 // indirect - golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sys v0.23.0 // indirect golang.org/x/term v0.23.0 // indirect golang.org/x/text v0.17.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.23.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac // indirect - google.golang.org/grpc v1.60.1 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect + google.golang.org/grpc v1.63.1 // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/evanphx/json-patch.v5 v5.8.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/plugins/scheduler-k3s/go.sum b/plugins/scheduler-k3s/go.sum index 4a0fa3164..24717e6fc 100644 --- a/plugins/scheduler-k3s/go.sum +++ b/plugins/scheduler-k3s/go.sum @@ -2,8 +2,8 @@ github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9 github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= -github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= @@ -43,8 +43,8 @@ github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembj github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= -github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cert-manager/cert-manager v1.13.3 h1:3R4G0RI7K0OkTZhWlVOC5SGZMYa2NwqmQJoyKydrz/M= github.com/cert-manager/cert-manager v1.13.3/go.mod h1:BM2+Pt/NmSv1Zr25/MHv6BgIEF9IUxA1xAjp80qkxgc= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= @@ -108,14 +108,14 @@ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHk github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/go-acme/lego/v4 v4.14.0 h1:/skZoRHgVh0d2RK7l1g3Ch8HqeqP9LB8ZEjLdGEpcDE= -github.com/go-acme/lego/v4 v4.14.0/go.mod h1:zjmvNCDLGz7GrC1OqdVpVmZFKSRabEDtWbdzmcpBsGo= +github.com/go-acme/lego/v4 v4.17.4 h1:h0nePd3ObP6o7kAkndtpTzCw8shOZuWckNYeUQwo36Q= +github.com/go-acme/lego/v4 v4.17.4/go.mod h1:dU94SvPNqimEeb7EVilGGSnS0nU1O5Exir0pQ4QFL4U= github.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk= github.com/go-errors/errors v1.5.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs= github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw= -github.com/go-jose/go-jose/v3 v3.0.3 h1:fFKWeig/irsp7XD2zBxvnmA/XaRWp5V3CBsZXJF7G7k= -github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ= +github.com/go-jose/go-jose/v4 v4.0.2 h1:R3l3kkBds16bO7ZFAEEcofK0MkrAJt3jlJznWZG0nvk= +github.com/go-jose/go-jose/v4 v4.0.2/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= @@ -161,10 +161,8 @@ github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4er github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/gomodule/redigo v1.8.2 h1:H5XSIre1MB5NbPYFp+i1NBbb5qN1W8Y8YAQoAYbkm8k= github.com/gomodule/redigo v1.8.2/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0= github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= @@ -172,20 +170,19 @@ github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9 github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20231229205709-960ae82b1e42 h1:dHLYa5D8/Ta0aLR2XcPsrkpAgGeFs6thhMcQK0oQ0n8= -github.com/google/pprof v0.0.0-20231229205709-960ae82b1e42/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20240402174815-29b9bb013b0f h1:f00RU+zOX+B3rLAmMMkzHUF2h1z4DeYR9tTCvEq2REY= +github.com/google/pprof v0.0.0-20240402174815-29b9bb013b0f/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= @@ -275,8 +272,8 @@ github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/melbahja/goph v1.4.0 h1:z0PgDbBFe66lRYl3v5dGb9aFgPy0kotuQ37QOwSQFqs= github.com/melbahja/goph v1.4.0/go.mod h1:uG+VfK2Dlhk+O32zFrRlc3kYKTlV6+BtvPWd/kK7U68= -github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo= -github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= +github.com/miekg/dns v1.1.59 h1:C9EXc/UToRwKLhK5wKU/I4QVsBUc8kE6MkHBkeypWZs= +github.com/miekg/dns v1.1.59/go.mod h1:nZpewl5p6IvctfgrckopVx2OlSEHPRO/U4SYkRklrEk= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -309,8 +306,9 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= -github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo/v2 v2.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8= +github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= @@ -340,16 +338,16 @@ github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjz github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.46.0 h1:doXzt5ybi1HBKpsZOL0sSkaNHJJqkyfEWZGGqqScV0Y= -github.com/prometheus/common v0.46.0/go.mod h1:Tp0qkxpb9Jsg54QMe+EAmqXkSV7Evdy1BTn+g2pa/hQ= +github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= +github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= @@ -385,18 +383,18 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.5.1 h1:4VhoImhV/Bm0ToFkXFi8hXNXwpDRZ/ynw3amt82mzq0= -github.com/stretchr/objx v0.5.1/go.mod h1:/iHQpkQwBD6DLUmQ4pE+s1TXdob1mORJ4/UFdrifcy0= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/traefik/paerser v0.2.0 h1:zqCLGSXoNlcBd+mzqSCLjon/I6phqIjeJL2xFB2ysgQ= github.com/traefik/paerser v0.2.0/go.mod h1:afzaVcgF8A+MpTnPG4wBr4whjanCSYA6vK5RwaYVtRc= -github.com/traefik/traefik/v2 v2.10.7 h1:vs91abMRVFTxBjn9hsLkqPbQ+D0oM1+bf4K8nD5PKg4= -github.com/traefik/traefik/v2 v2.10.7/go.mod h1:TD3saYNYbcBa7qDm29fIeyaiCMVX3ltv2YuaX3ANcnc= +github.com/traefik/traefik/v2 v2.11.6 h1:+PCf9wGMLqfOyOUu7WZWxkjrzNvvEp1WANMXiYZCF2U= +github.com/traefik/traefik/v2 v2.11.6/go.mod h1:dAWTe9bpVKrF2wUyysEXY9Jm+I0NJr0IBnpRY7LSwac= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -417,14 +415,14 @@ github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1 github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= -go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= -go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= -go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= -go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= -go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= -go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.starlark.net v0.0.0-20231121155337-90ade8b19d09 h1:hzy3LFnSN8kuQK8h9tHl4ndF6UruMj47OqwqsS+/Ai4= go.starlark.net v0.0.0-20231121155337-90ade8b19d09/go.mod h1:LcLNIzVOMp4oV+uusnpk+VU+SzXaJakUuBjoCSWH5dM= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -442,7 +440,6 @@ golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= @@ -468,8 +465,8 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= -golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -499,7 +496,6 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -508,19 +504,16 @@ golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -540,14 +533,10 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac h1:nUQEQmH/csSvFECKYRv6HWEyypysidKl2I6Qpsglq/0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA= -google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU= -google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 h1:NnYq6UN9ReLM9/Y01KWNOWyI5xQ9kbIms5GGJVwS/Yc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/grpc v1.63.1 h1:pNClQmvdlyNUiwFETOux/PYqfhmA7BrswEdGRnib1fA= +google.golang.org/grpc v1.63.1/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= From c9cf54b928f187a2830581a41073bdbd0291108b Mon Sep 17 00:00:00 2001 From: Tim de Koning Date: Fri, 26 Apr 2024 12:14:59 +0200 Subject: [PATCH 07/79] Support Ubuntu 24.04 LTS Dokku seems to work on Ubuntu 24.04 --- bootstrap.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index ee6f7050e..9d028a735 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -12,7 +12,7 @@ set -eo pipefail # That's good because it prevents our output overlapping with wget's. # It also means that we can't run a partially downloaded script. -SUPPORTED_VERSIONS="Debian [10, 11, 12], Ubuntu [18.04, 20.04, 22.04]" +SUPPORTED_VERSIONS="Debian [10, 11, 12], Ubuntu [18.04, 20.04, 22.04, 24.04]" log-fail() { declare desc="log fail formatter" @@ -160,7 +160,7 @@ install-dokku-from-deb-package() { local NO_INSTALL_RECOMMENDS=${DOKKU_NO_INSTALL_RECOMMENDS:=""} local OS_ID - if ! in-array "$DOKKU_DISTRO_VERSION" "18.04" "20.04" "22.04" "10" "11" "12"; then + if ! in-array "$DOKKU_DISTRO_VERSION" "18.04" "20.04" "22.04" "24.04" "10" "11" "12"; then log-fail "Unsupported Linux distribution. Only the following versions are supported: $SUPPORTED_VERSIONS" fi From ab802cb4dd7ff1b212b386d6993c9c3a5819ead2 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 25 Aug 2024 23:30:41 -0400 Subject: [PATCH 08/79] feat: ensure Ubuntu Noble is properly supported by the Dokku release process Also update doc references to use 24.04 in examples where possible. --- README.md | 2 +- bootstrap.sh | 14 +++++++------- contrib/copy-packages | 4 ++-- contrib/release-dokku | 2 +- deb.mk | 2 +- docs/deployment/builders/dockerfiles.md | 4 ++-- .../continuous-integration/github-actions.md | 2 +- docs/development/testing.md | 4 ++-- docs/getting-started/install/digitalocean.md | 2 +- docs/getting-started/install/dreamhost.md | 4 ++-- docs/getting-started/installation/index.md | 2 +- docs/networking/port-management.md | 2 +- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index c6a45f20f..5790fd003 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Support us with a monthly donation and help us continue our activities. [[Become A fresh VM running any of the following operating systems: -- Ubuntu 20.04 / 22.04 x64 - Any currently supported release +- Ubuntu 20.04 / 22.04 / 24.04 x64 - Any currently supported release - Debian 10+ x64 - Arch Linux x64 *(experimental)* diff --git a/bootstrap.sh b/bootstrap.sh index 9d028a735..1cff7c2ff 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -3,7 +3,7 @@ set -eo pipefail [[ $TRACE ]] && set -x # A script to bootstrap dokku. -# It expects to be run on Ubuntu 20.04/22.04 via 'sudo` +# It expects to be run on Ubuntu 20.04/22.04/24.04 via 'sudo` # If installing a tag higher than 0.3.13, it may install dokku via a package (so long as the package is higher than 0.3.13) # It checks out the dokku source code from GitHub into ~/dokku and then runs 'make install' from dokku source. @@ -12,7 +12,7 @@ set -eo pipefail # That's good because it prevents our output overlapping with wget's. # It also means that we can't run a partially downloaded script. -SUPPORTED_VERSIONS="Debian [10, 11, 12], Ubuntu [18.04, 20.04, 22.04, 24.04]" +SUPPORTED_VERSIONS="Debian [10, 11, 12], Ubuntu [20.04, 22.04, 24.04]" log-fail() { declare desc="log fail formatter" @@ -160,7 +160,7 @@ install-dokku-from-deb-package() { local NO_INSTALL_RECOMMENDS=${DOKKU_NO_INSTALL_RECOMMENDS:=""} local OS_ID - if ! in-array "$DOKKU_DISTRO_VERSION" "18.04" "20.04" "22.04" "24.04" "10" "11" "12"; then + if ! in-array "$DOKKU_DISTRO_VERSION" "20.04" "22.04" "24.04" "10" "11" "12"; then log-fail "Unsupported Linux distribution. Only the following versions are supported: $SUPPORTED_VERSIONS" fi @@ -181,16 +181,16 @@ install-dokku-from-deb-package() { wget -nv -O - https://get.docker.com/ | sh fi - OS_ID="$(lsb_release -cs 2>/dev/null || echo "jammy")" + OS_ID="$(lsb_release -cs 2>/dev/null || echo "noble")" if ! in-array "$DOKKU_DISTRO" "debian" "ubuntu" "raspbian"; then DOKKU_DISTRO="ubuntu" - OS_ID="jammy" + OS_ID="noble" fi if [[ "$DOKKU_DISTRO" == "ubuntu" ]]; then - OS_IDS=("focal" "jammy") + OS_IDS=("focal" "jammy" "noble") if ! in-array "$OS_ID" "${OS_IDS[@]}"; then - OS_ID="jammy" + OS_ID="noble" fi elif [[ "$DOKKU_DISTRO" == "debian" ]]; then OS_IDS=("stretch" "buster" "bullseye" "bookworm") diff --git a/contrib/copy-packages b/contrib/copy-packages index 0446ac143..12458bf20 100644 --- a/contrib/copy-packages +++ b/contrib/copy-packages @@ -15,7 +15,7 @@ def download_file(filename, url): def upload_file(filename): - versions = ["jammy"] + versions = ["noble"] cmd_template = "package_cloud push dokku/dokku/ubuntu/{0} {1}" for version in versions: cmd = cmd_template.format(version, filename) @@ -25,7 +25,7 @@ def upload_file(filename): def main(): auth = HTTPBasicAuth(PACKAGECLOUD_TOKEN, "") base = requests.get( - "https://packagecloud.io/api/v1/repos/dokku/dokku/packages/deb/ubuntu/focal.json", + "https://packagecloud.io/api/v1/repos/dokku/dokku/packages/deb/ubuntu/jammy.json", auth=auth, ) data = base.json() diff --git a/contrib/release-dokku b/contrib/release-dokku index f1cc52b3b..2251fc28f 100755 --- a/contrib/release-dokku +++ b/contrib/release-dokku @@ -144,7 +144,7 @@ fn-publish-package() { fi done elif [[ "$DIST" == "ubuntu" ]]; then - OS_IDS=("focal" "jammy") + OS_IDS=("focal" "jammy" "noble") for OS_ID in "${OS_IDS[@]}"; do log-info "(release-dokku) pushing ${RELEASE_TYPE} to packagecloud.com/${REPOSITORY}/${DIST}" package_cloud push "${REPOSITORY}/${DIST}/${OS_ID}" "$PACKAGE_NAME" diff --git a/deb.mk b/deb.mk index 23c6740dc..546a98c3f 100644 --- a/deb.mk +++ b/deb.mk @@ -16,7 +16,7 @@ install-from-deb: @echo "--> Installing dokku" wget -qO- https://packagecloud.io/dokku/dokku/gpgkey | sudo tee /etc/apt/trusted.gpg.d/dokku.asc - @echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ $(shell lsb_release -cs 2>/dev/null || echo "focal") main" | sudo tee /etc/apt/sources.list.d/dokku.list + @echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ $(shell lsb_release -cs 2>/dev/null || echo "noble") main" | sudo tee /etc/apt/sources.list.d/dokku.list sudo apt-get update -qq >/dev/null sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get -qq -y --no-install-recommends install dokku diff --git a/docs/deployment/builders/dockerfiles.md b/docs/deployment/builders/dockerfiles.md index 38dc9bf13..64b3c4726 100644 --- a/docs/deployment/builders/dockerfiles.md +++ b/docs/deployment/builders/dockerfiles.md @@ -130,7 +130,7 @@ dokku docker-options:add node-js-app build '--build-arg NODE_ENV' Once set, the Dockerfile usage would be as follows: ```Dockerfile -FROM ubuntu:20.04 +FROM ubuntu:24.04 # set the argument default ARG NODE_ENV=production @@ -142,7 +142,7 @@ RUN echo $NODE_ENV You may also set the argument as an environment variable ```Dockerfile -FROM ubuntu:20.04 +FROM ubuntu:24.04 # set the argument default ARG NODE_ENV=production diff --git a/docs/deployment/continuous-integration/github-actions.md b/docs/deployment/continuous-integration/github-actions.md index 200f4e8ca..19d9921d6 100644 --- a/docs/deployment/continuous-integration/github-actions.md +++ b/docs/deployment/continuous-integration/github-actions.md @@ -13,7 +13,7 @@ on: jobs: deploy: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Cloning repo uses: actions/checkout@v3 diff --git a/docs/development/testing.md b/docs/development/testing.md index dd6998092..6223ef8ff 100644 --- a/docs/development/testing.md +++ b/docs/development/testing.md @@ -9,11 +9,11 @@ We maintain the Dokku test harness within the `tests` directory: ## Continuous Integration -All pull requests have tests run against them on [GitHub Actions](https://github.com/features/actions), a continuous integration platform that provides Docker support for Ubuntu Focal 20.04. +All pull requests have tests run against them on [GitHub Actions](https://github.com/features/actions), a continuous integration platform that provides Docker support for Ubuntu Jammy 22.04. If you wish to skip tests for a particular commit, e.g. documentation changes, you may add the `[ci skip]` designator to your commit message. Commits that _should_ be tested but have the above designator will not be merged. -While we do provide official packages for a variety of platforms, as our test suite currently runs on Ubuntu Focal 20.04, we only provide official installation support for that platform and the latest LTS release of Ubuntu (currently 20.04). +While we do provide official packages for a variety of platforms, as our test suite currently runs on Ubuntu Jammy 22.04, we only provide official installation support for that platform and the supported LTS releases of Ubuntu (currently 20.04, 22.04, and 24.04). ## Local Test Execution diff --git a/docs/getting-started/install/digitalocean.md b/docs/getting-started/install/digitalocean.md index 666d57fbb..7692bd6b3 100644 --- a/docs/getting-started/install/digitalocean.md +++ b/docs/getting-started/install/digitalocean.md @@ -6,7 +6,7 @@ 1. Login to your [DigitalOcean](https://m.do.co/c/fe06b043a083) account. 2. Click **Create a Droplet**. -3. Under **Choose an image > Marketplace**, search latest **Dokku** release for Ubuntu 20.04 _(version numbers may vary)_. +3. Under **Choose an image > Marketplace**, search latest **Dokku** release for Ubuntu 24.04 _(version numbers may vary)_. 4. Under **Choose a size**, select your machine spec. 5. Under **Choose a datacenter region**, select your region. 6. Add an SSH Key. diff --git a/docs/getting-started/install/dreamhost.md b/docs/getting-started/install/dreamhost.md index 57c3c7ff5..ccef56880 100644 --- a/docs/getting-started/install/dreamhost.md +++ b/docs/getting-started/install/dreamhost.md @@ -19,7 +19,7 @@ source openrc.sh # Set the environment variables for DreamHost Cloud This allows OpenStack client to connect to DreamHost API endpoints. The command below creates a new server instance named `my-dokku-instance` -based on Ubuntu 20.04, with 2 GB RAM and 1 CPU (the flavor called +based on Ubuntu 24.04, with 2 GB RAM and 1 CPU (the flavor called `supersonic`), opening network port access to HTTP and SSH (the `default` security group), and the name of the chosen SSH key. This key will be automatically added to the new server in the @@ -28,7 +28,7 @@ be reused by Dokku. ```sh openstack server create \ - --image Ubuntu-20.04 \ + --image Ubuntu-24.04 \ --flavor gp1.supersonic \ --security-group default \ --key-name $YOUR_SSH_KEYNAME \ diff --git a/docs/getting-started/installation/index.md b/docs/getting-started/installation/index.md index 3a48702bd..bafe9fb43 100644 --- a/docs/getting-started/installation/index.md +++ b/docs/getting-started/installation/index.md @@ -9,7 +9,7 @@ Dokku is an extensible, open source Platform as a Service that runs on a single To start using Dokku, you'll need a system that meets the following minimum requirements: - A fresh installation of any of the following operating systems: - - [Ubuntu 20.04/22.04](https://www.ubuntu.com/download) + - [Ubuntu 20.04/22.04/24.04](https://www.ubuntu.com/download) - [Debian 10+ x64](https://www.debian.org/distrib/) - A server with one of the following architectures - AMD64 (alternatively known as `x86_64`), commonly used for Intel cloud servers diff --git a/docs/networking/port-management.md b/docs/networking/port-management.md index 385acf0c3..870551298 100644 --- a/docs/networking/port-management.md +++ b/docs/networking/port-management.md @@ -161,7 +161,7 @@ Dokku will extract all tcp ports exposed using the `EXPOSE` directive (one port For example, if the Dokku installation is configured with the domain `dokku.me` and an application named `node-js-app` is deployed with following Dockerfile: ``` -FROM ubuntu:20.04 +FROM ubuntu:24.04 EXPOSE 1234 CMD python -m SimpleHTTPServer 1234 ``` From e5bf88a14de48f36a18aad2bf99d98f5713f2a56 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 23 Mar 2024 22:02:11 -0400 Subject: [PATCH 09/79] feat: upgrade docker compose version in use Also update the pinned docker version, which has long been outdated. --- debian/control | 2 +- plugins/caddy-vhosts/templates/compose.yml.sigil | 2 +- plugins/haproxy-vhosts/templates/compose.yml.sigil | 2 +- plugins/logs/templates/compose.yml.tmpl | 2 +- plugins/openresty-vhosts/templates/compose.yml.sigil | 2 +- plugins/traefik-vhosts/templates/compose.yml.sigil | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/debian/control b/debian/control index 06046fae7..eb94818f2 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Version: 0.34.9 Section: web Priority: optional Architecture: amd64 -Depends: apache2-utils, locales, git, cpio, curl, man-db, netcat, sshcommand, docker-engine-cs (>= 17.05.0) | docker-engine (>= 17.05.0) | docker-io (>= 17.05.0) | docker.io (>= 17.05.0) | docker-ce (>= 17.05.0) | docker-ee (>= 17.05.0) | moby-engine, docker-compose-plugin | moby-compose, docker-buildx-plugin | moby-buildx, docker-container-healthchecker, docker-image-labeler, lambda-builder, net-tools, netrc, parallel, procfile-util, rsync, rsyslog, dos2unix, jq, unzip, util-linux +Depends: apache2-utils, locales, git, cpio, curl, man-db, netcat, sshcommand, docker-engine-cs (>= 19.03.0) | docker-engine (>= 19.03.0) | docker-io (>= 19.03.0) | docker.io (>= 19.03.0) | docker-ce (>= 19.03.0) | docker-ee (>= 19.03.0) | moby-engine, docker-compose-plugin | moby-compose, docker-buildx-plugin | moby-buildx, docker-container-healthchecker, docker-image-labeler, lambda-builder, net-tools, netrc, parallel, procfile-util, rsync, rsyslog, dos2unix, jq, unzip, util-linux Recommends: herokuish, bash-completion, dokku-update, dokku-event-listener Pre-Depends: gliderlabs-sigil, nginx (>= 1.8.0) | openresty, bind9-dnsutils, cgroupfs-mount | cgroup-lite, plugn, sudo, python3, debconf Maintainer: Jose Diaz-Gonzalez diff --git a/plugins/caddy-vhosts/templates/compose.yml.sigil b/plugins/caddy-vhosts/templates/compose.yml.sigil index 75c0d7e83..a96f18df2 100644 --- a/plugins/caddy-vhosts/templates/compose.yml.sigil +++ b/plugins/caddy-vhosts/templates/compose.yml.sigil @@ -1,5 +1,5 @@ --- -version: "3.7" +version: "3.8" services: caddy: diff --git a/plugins/haproxy-vhosts/templates/compose.yml.sigil b/plugins/haproxy-vhosts/templates/compose.yml.sigil index 6b9890a32..9097a548b 100644 --- a/plugins/haproxy-vhosts/templates/compose.yml.sigil +++ b/plugins/haproxy-vhosts/templates/compose.yml.sigil @@ -1,5 +1,5 @@ --- -version: "3.7" +version: "3.8" services: haproxy: diff --git a/plugins/logs/templates/compose.yml.tmpl b/plugins/logs/templates/compose.yml.tmpl index 29456db14..b8ec72469 100644 --- a/plugins/logs/templates/compose.yml.tmpl +++ b/plugins/logs/templates/compose.yml.tmpl @@ -1,5 +1,5 @@ --- -version: "3.7" +version: "3.8" services: vector: diff --git a/plugins/openresty-vhosts/templates/compose.yml.sigil b/plugins/openresty-vhosts/templates/compose.yml.sigil index f147328e6..d6a13ffe9 100644 --- a/plugins/openresty-vhosts/templates/compose.yml.sigil +++ b/plugins/openresty-vhosts/templates/compose.yml.sigil @@ -1,5 +1,5 @@ --- -version: "3.7" +version: "3.8" services: openresty: diff --git a/plugins/traefik-vhosts/templates/compose.yml.sigil b/plugins/traefik-vhosts/templates/compose.yml.sigil index d06854484..b26b2e477 100644 --- a/plugins/traefik-vhosts/templates/compose.yml.sigil +++ b/plugins/traefik-vhosts/templates/compose.yml.sigil @@ -1,5 +1,5 @@ --- -version: "3.7" +version: "3.8" services: traefik: From 12648e0bc6d00344a3827a65ba7512ad9224c9fe Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 1 Apr 2024 16:10:04 -0400 Subject: [PATCH 10/79] feat: remove --restart docker arguments when not running deploy-phase containers This works around cases where developers may inadvertently add this to `run` containers which _should not_ have the `--restart` flag. Run containers are one-off, and if they fail, then they should fail hard. --- plugins/docker-options/docker-args-deploy | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/docker-options/docker-args-deploy b/plugins/docker-options/docker-args-deploy index c1606d215..53a8e14ea 100755 --- a/plugins/docker-options/docker-args-deploy +++ b/plugins/docker-options/docker-args-deploy @@ -37,6 +37,14 @@ trigger-docker-options-docker-args() { \#*) continue ;; + + --restart*) + if [[ "$PHASE" == "deploy" ]]; then + local output="$output $line" + fi + continue + ;; + *) case "$IMAGE_SOURCE_TYPE" in dockerfile | nixpacks) From 92ff40e650eadfab7afe030eccba97ab24215f55 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 26 Aug 2024 00:40:40 -0400 Subject: [PATCH 11/79] chore: drop codacy The output isn't checked by me, currently has errors scanning the repo, and hasn't helped improve the project in some time. --- .codacy.yml | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 .codacy.yml diff --git a/.codacy.yml b/.codacy.yml deleted file mode 100644 index bd3ed9e8b..000000000 --- a/.codacy.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -engines: - duplication: - exclude_paths: - - "*" -exclude_paths: - - vendor/**/* - - tests/**/* - - "**_test.go" - - contrib/* From 8f5dbe61d9971e4bfc772f7aeaede431ca7d8158 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 26 Aug 2024 04:20:52 -0400 Subject: [PATCH 12/79] feat: upgrade herokuish builder to gliderlabs/herokuish:latest-24 --- Makefile | 2 +- docs/appendices/0.31.0-migration-guide.md | 2 +- docs/deployment/builders/herokuish-buildpacks.md | 12 ++++++------ dokku | 2 +- tests/apps/dockerfile/app.json | 2 +- tests/apps/nodejs-express/app.json | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index a6d953105..05dd89cc2 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ PROCFILE_UTIL_URL ?= $(shell jq -r --arg name procfile-util --arg arch $(TARGET SIGIL_URL ?= $(shell jq -r --arg name gliderlabs-sigil --arg arch $(TARGETARCH) '.predependencies[] | select(.name == $$name) | .urls[$$arch]' contrib/dependencies.json) SSHCOMMAND_URL ?= $(shell jq -r --arg name sshcommand --arg arch $(TARGETARCH) '.dependencies[] | select(.name == $$name) | .urls[$$arch]' contrib/dependencies.json) STACK_URL ?= https://github.com/gliderlabs/herokuish.git -PREBUILT_STACK_URL ?= gliderlabs/herokuish:latest-22 +PREBUILT_STACK_URL ?= gliderlabs/herokuish:latest-24 DOKKU_LIB_ROOT ?= /var/lib/dokku PLUGINS_PATH ?= ${DOKKU_LIB_ROOT}/plugins CORE_PLUGINS_PATH ?= ${DOKKU_LIB_ROOT}/core-plugins diff --git a/docs/appendices/0.31.0-migration-guide.md b/docs/appendices/0.31.0-migration-guide.md index a5636568b..e0066167d 100644 --- a/docs/appendices/0.31.0-migration-guide.md +++ b/docs/appendices/0.31.0-migration-guide.md @@ -9,7 +9,7 @@ - For deploys via the `git:from-image` and `git:load-image` commands, the `CHECKS` file is now extracted from the configured `WORKDIR` property of the image. For all other deploys - git push, `git:from-archive`, `git:sync` - will have the `CHECKS` extracted directly from the source code. The filename in both cases is `CHECKS` and cannot be modified. - Port mappings are now auto-detected during the build process. Users may override detected port mappings via the `ports` plugin. A default port mapping of `http:80:5000` will be used if none is otherwise specified. - Users building docker images that run Dokku will need to use a new sudoer wrapper for the `docker-container-healthchecker` binary to work correctly. A reference version has been placed in the `docker` skeleton directory. This should only impact platform developers, and users of our Docker image will already have the file available. -- The default image used for Herokuish Buildpack builds is now `gliderlabs/herokuish:latest-22`, and is based on both the `heroku-22` stack as well as Ubuntu 22.04. Users that wish to stick with the old, `heroku-20`/Ubuntu 20.04 builder may specify `gliderlabs/herokuish:latest-20` as their builder image. Please see the [herokuish buildpack deployment documentation](/docs/deployment/builders/herokuish-buildpacks.md#customizing-the-buildpack-stack-builder) for more information on how to specify a custom buildpack stack builder. +- The default image used for Herokuish Buildpack builds is now `gliderlabs/herokuish:latest-24`, and is based on both the `heroku-22` stack as well as Ubuntu 22.04. Users that wish to stick with the old, `heroku-20`/Ubuntu 20.04 builder may specify `gliderlabs/herokuish:latest-20` as their builder image. Please see the [herokuish buildpack deployment documentation](/docs/deployment/builders/herokuish-buildpacks.md#customizing-the-buildpack-stack-builder) for more information on how to specify a custom buildpack stack builder. - The default image used for Cloud Native Buildpack builds is now `heroku/builder:22`, and is based on both the `heroku-22` stack as well as Ubuntu 22.04. Users that wish to stick with the old, `heroku-20`/Ubuntu 20.04 builder may specify `heroku/buildpacks:20` as their builder image. Please see the [herokuish buildpack deployment documentation](/docs/deployment/builders/herokuish-buildpacks.md#customizing-the-buildpack-stack-builder) for more information on how to specify a custom buildpack stack builder. ## Deprecations diff --git a/docs/deployment/builders/herokuish-buildpacks.md b/docs/deployment/builders/herokuish-buildpacks.md index 2b04ec56f..f35b5e687 100644 --- a/docs/deployment/builders/herokuish-buildpacks.md +++ b/docs/deployment/builders/herokuish-buildpacks.md @@ -166,7 +166,7 @@ dokku buildpacks:set-property node-js-app stack A change in the stack builder value will execute the `post-stack-set` trigger. -Finally, stack builders can be set or unset globally as a fallback. This will take precedence over a globally set `DOKKU_IMAGE` environment variable (`gliderlabs/herokuish:latest-22` by default). +Finally, stack builders can be set or unset globally as a fallback. This will take precedence over a globally set `DOKKU_IMAGE` environment variable (`gliderlabs/herokuish:latest-24` by default). ```shell # set globally @@ -218,17 +218,17 @@ dokku buildpacks:report ``` =====> node-js-app buildpacks information Buildpacks computed stack: gliderlabs/herokuish:v0.7.0-22 - Buildpacks global stack: gliderlabs/herokuish:latest-22 + Buildpacks global stack: gliderlabs/herokuish:latest-24 Buildpacks list: https://github.com/heroku/heroku-buildpack-nodejs.git Buildpacks stack: gliderlabs/herokuish:v0.7.0-20 =====> python-sample buildpacks information - Buildpacks computed stack: gliderlabs/herokuish:latest-22 - Buildpacks global stack: gliderlabs/herokuish:latest-22 + Buildpacks computed stack: gliderlabs/herokuish:latest-24 + Buildpacks global stack: gliderlabs/herokuish:latest-24 Buildpacks list: https://github.com/heroku/heroku-buildpack-nodejs.git,https://github.com/heroku/heroku-buildpack-python.git Buildpacks stack: =====> ruby-sample buildpacks information - Buildpacks computed stack: gliderlabs/herokuish:latest-22 - Buildpacks global stack: gliderlabs/herokuish:latest-22 + Buildpacks computed stack: gliderlabs/herokuish:latest-24 + Buildpacks global stack: gliderlabs/herokuish:latest-24 Buildpacks list: Buildpacks stack: ``` diff --git a/dokku b/dokku index 862efa690..88c91825b 100755 --- a/dokku +++ b/dokku @@ -39,7 +39,7 @@ DOKKU_DISTRO=$( # configuration can ever override the DOCKER_BIN value export DOCKER_BIN=${DOCKER_BIN:="docker"} -export DOKKU_IMAGE=${DOKKU_IMAGE:="gliderlabs/herokuish:latest-22"} +export DOKKU_IMAGE=${DOKKU_IMAGE:="gliderlabs/herokuish:latest-24"} export DOKKU_CNB_BUILDER=${DOKKU_CNB_BUILDER:="heroku/builder:22"} export DOKKU_LIB_ROOT=${DOKKU_LIB_PATH:="/var/lib/dokku"} diff --git a/tests/apps/dockerfile/app.json b/tests/apps/dockerfile/app.json index c2155af18..bd0d70165 100644 --- a/tests/apps/dockerfile/app.json +++ b/tests/apps/dockerfile/app.json @@ -32,7 +32,7 @@ } ] }, - "image": "gliderlabs/herokuish:latest-22", + "image": "gliderlabs/herokuish:latest-24", "keywords": [ "nodejs", "express", diff --git a/tests/apps/nodejs-express/app.json b/tests/apps/nodejs-express/app.json index 0729bdcfc..5eb61f5f5 100644 --- a/tests/apps/nodejs-express/app.json +++ b/tests/apps/nodejs-express/app.json @@ -32,7 +32,7 @@ } ] }, - "image": "gliderlabs/herokuish:latest-22", + "image": "gliderlabs/herokuish:latest-24", "keywords": [ "nodejs", "express", From 04a5818d21c20652949122cbef395df3d53b0d8e Mon Sep 17 00:00:00 2001 From: Ben Katz Date: Mon, 26 Aug 2024 20:53:32 +0700 Subject: [PATCH 13/79] Update scheduled-cron-tasks.md --- docs/processes/scheduled-cron-tasks.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/processes/scheduled-cron-tasks.md b/docs/processes/scheduled-cron-tasks.md index fcf07b2b6..5f5f7d8b9 100644 --- a/docs/processes/scheduled-cron-tasks.md +++ b/docs/processes/scheduled-cron-tasks.md @@ -16,6 +16,9 @@ cron:set [--global|] # Set or clear a cron property for an ap Dokku automates scheduled `dokku run` commands via it's `app.json` cron integration. +> [!IMPORTANT] +> In order for Dokku to run scheduled cron tasks, you must have the `crontab` utility installed on the machine Dokku runs on. On Debian-based systems, you can install it with `sudo apt install cron`. + #### Specifying commands The `app.json` file for a given app can define a special `cron` key that contains a list of commands to run on given schedules. The following is a simple example `app.json` that effectively runs the command `dokku run $APP npm run send-email` once a day: From 45285761aac0be19eac38bdb5d893c45b31f257a Mon Sep 17 00:00:00 2001 From: Ben Katz Date: Tue, 27 Aug 2024 17:29:23 +0700 Subject: [PATCH 14/79] Add cron to debian control --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 06046fae7..250fa35ff 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Version: 0.34.9 Section: web Priority: optional Architecture: amd64 -Depends: apache2-utils, locales, git, cpio, curl, man-db, netcat, sshcommand, docker-engine-cs (>= 17.05.0) | docker-engine (>= 17.05.0) | docker-io (>= 17.05.0) | docker.io (>= 17.05.0) | docker-ce (>= 17.05.0) | docker-ee (>= 17.05.0) | moby-engine, docker-compose-plugin | moby-compose, docker-buildx-plugin | moby-buildx, docker-container-healthchecker, docker-image-labeler, lambda-builder, net-tools, netrc, parallel, procfile-util, rsync, rsyslog, dos2unix, jq, unzip, util-linux +Depends: apache2-utils, locales, git, cpio, cron, curl, man-db, netcat, sshcommand, docker-engine-cs (>= 17.05.0) | docker-engine (>= 17.05.0) | docker-io (>= 17.05.0) | docker.io (>= 17.05.0) | docker-ce (>= 17.05.0) | docker-ee (>= 17.05.0) | moby-engine, docker-compose-plugin | moby-compose, docker-buildx-plugin | moby-buildx, docker-container-healthchecker, docker-image-labeler, lambda-builder, net-tools, netrc, parallel, procfile-util, rsync, rsyslog, dos2unix, jq, unzip, util-linux Recommends: herokuish, bash-completion, dokku-update, dokku-event-listener Pre-Depends: gliderlabs-sigil, nginx (>= 1.8.0) | openresty, bind9-dnsutils, cgroupfs-mount | cgroup-lite, plugn, sudo, python3, debconf Maintainer: Jose Diaz-Gonzalez From cb206eb2b77ec874ef6799a1a3e9f3bbb30feed0 Mon Sep 17 00:00:00 2001 From: Ben Katz Date: Tue, 27 Aug 2024 17:32:38 +0700 Subject: [PATCH 15/79] Update scheduled-cron-tasks.md --- docs/processes/scheduled-cron-tasks.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/processes/scheduled-cron-tasks.md b/docs/processes/scheduled-cron-tasks.md index 5f5f7d8b9..fcf07b2b6 100644 --- a/docs/processes/scheduled-cron-tasks.md +++ b/docs/processes/scheduled-cron-tasks.md @@ -16,9 +16,6 @@ cron:set [--global|] # Set or clear a cron property for an ap Dokku automates scheduled `dokku run` commands via it's `app.json` cron integration. -> [!IMPORTANT] -> In order for Dokku to run scheduled cron tasks, you must have the `crontab` utility installed on the machine Dokku runs on. On Debian-based systems, you can install it with `sudo apt install cron`. - #### Specifying commands The `app.json` file for a given app can define a special `cron` key that contains a list of commands to run on given schedules. The following is a simple example `app.json` that effectively runs the command `dokku run $APP npm run send-email` once a day: From 86cadfd43e5eddfea3c145074f8065d7f82df0bd Mon Sep 17 00:00:00 2001 From: andreby Date: Wed, 28 Aug 2024 06:31:27 +0200 Subject: [PATCH 16/79] fix: handle the case where parent PID is 0 This happens inside an LXD VM. Closes #7082 --- debian/prerm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/prerm b/debian/prerm index 33ec447df..577ef29d0 100755 --- a/debian/prerm +++ b/debian/prerm @@ -20,7 +20,7 @@ ps_backtrace() { fi ppid=$(ps -o ppid= $pid) ps uww $header_modifier -p $pid - if [ $pid -eq 1 ]; then + if [ $pid -eq 1 -o $pid -eq 0 ]; then break fi pid=$ppid From 77ce64ff3f396429aa7212a496b765f2306b49bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Sep 2024 13:50:03 +0000 Subject: [PATCH 17/79] chore(deps): bump timberio/vector in /plugins/logs Bumps timberio/vector from 0.39.0-debian to 0.41.1-debian. --- updated-dependencies: - dependency-name: timberio/vector dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- plugins/logs/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/logs/Dockerfile b/plugins/logs/Dockerfile index 432025e23..22728f513 100644 --- a/plugins/logs/Dockerfile +++ b/plugins/logs/Dockerfile @@ -1 +1 @@ -FROM timberio/vector:0.39.0-debian +FROM timberio/vector:0.41.1-debian From 960166b0f7b600c24f8043092c4f5ee012ca2035 Mon Sep 17 00:00:00 2001 From: Charly Koza Date: Mon, 16 Sep 2024 11:21:01 +0200 Subject: [PATCH 18/79] fix(builder-herokuish): fix ARG default value [Documentation](https://docs.docker.com/reference/dockerfile/#arg) indicates that arguments must be passed using equal sign `=`. This fixes error "ARG requires exactly one argument" using Docker 20.10.12 (and possibly many other versions). --- .../dockerfiles/builder-pre-release.Dockerfile | 2 +- .../builder-herokuish/dockerfiles/builder-release.Dockerfile | 2 +- plugins/builder-herokuish/dockerfiles/copy-source.Dockerfile | 2 +- plugins/builder-herokuish/dockerfiles/pre-build.Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/builder-herokuish/dockerfiles/builder-pre-release.Dockerfile b/plugins/builder-herokuish/dockerfiles/builder-pre-release.Dockerfile index bef15548b..c43ffea51 100644 --- a/plugins/builder-herokuish/dockerfiles/builder-pre-release.Dockerfile +++ b/plugins/builder-herokuish/dockerfiles/builder-pre-release.Dockerfile @@ -1,5 +1,5 @@ ARG APP_IMAGE FROM $APP_IMAGE -ARG DOKKU_APP_USER herokuishuser +ARG DOKKU_APP_USER=herokuishuser COPY --chown=$DOKKU_APP_USER 00-global-env.sh 01-app-env.sh /app/.profile.d/ diff --git a/plugins/builder-herokuish/dockerfiles/builder-release.Dockerfile b/plugins/builder-herokuish/dockerfiles/builder-release.Dockerfile index f71c47beb..6ce7dbd82 100644 --- a/plugins/builder-herokuish/dockerfiles/builder-release.Dockerfile +++ b/plugins/builder-herokuish/dockerfiles/builder-release.Dockerfile @@ -1,7 +1,7 @@ ARG APP_IMAGE FROM $APP_IMAGE -ARG DOKKU_APP_USER herokuishuser +ARG DOKKU_APP_USER=herokuishuser COPY --chown=$DOKKU_APP_USER 00-global-env.sh 01-app-env.sh /app/.profile.d/ RUN find "/app" \( \! -user "$DOKKU_APP_USER" -o \! -group "$DOKKU_APP_USER" \) -print0 | xargs -0 -r chown "$DOKKU_APP_USER:$DOKKU_APP_USER" USER $DOKKU_APP_USER diff --git a/plugins/builder-herokuish/dockerfiles/copy-source.Dockerfile b/plugins/builder-herokuish/dockerfiles/copy-source.Dockerfile index 7afe40b99..3fcc43aed 100644 --- a/plugins/builder-herokuish/dockerfiles/copy-source.Dockerfile +++ b/plugins/builder-herokuish/dockerfiles/copy-source.Dockerfile @@ -1,7 +1,7 @@ ARG APP_IMAGE FROM $APP_IMAGE -ARG DOKKU_APP_USER herokuishuser +ARG DOKKU_APP_USER=herokuishuser ARG TRACE RUN TRACE=$TRACE USER=$DOKKU_APP_USER /exec true COPY --chown=$DOKKU_APP_USER . /app diff --git a/plugins/builder-herokuish/dockerfiles/pre-build.Dockerfile b/plugins/builder-herokuish/dockerfiles/pre-build.Dockerfile index 7099b46e2..ae115f670 100644 --- a/plugins/builder-herokuish/dockerfiles/pre-build.Dockerfile +++ b/plugins/builder-herokuish/dockerfiles/pre-build.Dockerfile @@ -1,6 +1,6 @@ ARG APP_IMAGE FROM $APP_IMAGE -ARG DOKKU_APP_USER herokuishuser +ARG DOKKU_APP_USER=herokuishuser COPY --chown=$DOKKU_APP_USER .env.d /tmp/env COPY --chown=$DOKKU_APP_USER .env /app/.env From 3a427150955b3eb3b13ffc68af25b98721eac291 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 13:59:00 +0000 Subject: [PATCH 19/79] chore(deps): bump dokku/openresty-docker-proxy Bumps dokku/openresty-docker-proxy from 0.8.0 to 0.9.0. --- updated-dependencies: - dependency-name: dokku/openresty-docker-proxy dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- plugins/openresty-vhosts/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/openresty-vhosts/Dockerfile b/plugins/openresty-vhosts/Dockerfile index 99a33f935..2fc673289 100644 --- a/plugins/openresty-vhosts/Dockerfile +++ b/plugins/openresty-vhosts/Dockerfile @@ -1 +1 @@ -FROM dokku/openresty-docker-proxy:0.8.0 +FROM dokku/openresty-docker-proxy:0.9.0 From 3f70b1238c0097cdd49f8ffc2c14c29ad835f1de Mon Sep 17 00:00:00 2001 From: Charly Koza Date: Wed, 18 Sep 2024 14:10:14 +0200 Subject: [PATCH 20/79] build: fix building when jq is not available. docker-image-labeler default DOCKER_IMAGE_LABELER_URL uses jq, so jq needs to be available first. This happens for example when using `vagrant up dokku-window`. Fixes #7155 --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a6d953105..163a935a8 100644 --- a/Makefile +++ b/Makefile @@ -131,7 +131,7 @@ plugin-dependencies: plugn procfile-util plugins: plugn procfile-util docker sudo -E dokku plugin:install --core -dependencies: apt-update docker-image-labeler docker-container-healthchecker lambda-builder netrc sshcommand plugn procfile-util docker help2man man-db sigil dos2unix jq parallel +dependencies: apt-update jq docker-image-labeler docker-container-healthchecker lambda-builder netrc sshcommand plugn procfile-util docker help2man man-db sigil dos2unix parallel $(MAKE) -e stack apt-update: From 76e3ef6749dda88211b1e81560dbf4de4255387b Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Fri, 20 Sep 2024 21:39:47 -0400 Subject: [PATCH 21/79] docs: revert incorrect doc change --- docs/appendices/0.31.0-migration-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/appendices/0.31.0-migration-guide.md b/docs/appendices/0.31.0-migration-guide.md index e0066167d..a5636568b 100644 --- a/docs/appendices/0.31.0-migration-guide.md +++ b/docs/appendices/0.31.0-migration-guide.md @@ -9,7 +9,7 @@ - For deploys via the `git:from-image` and `git:load-image` commands, the `CHECKS` file is now extracted from the configured `WORKDIR` property of the image. For all other deploys - git push, `git:from-archive`, `git:sync` - will have the `CHECKS` extracted directly from the source code. The filename in both cases is `CHECKS` and cannot be modified. - Port mappings are now auto-detected during the build process. Users may override detected port mappings via the `ports` plugin. A default port mapping of `http:80:5000` will be used if none is otherwise specified. - Users building docker images that run Dokku will need to use a new sudoer wrapper for the `docker-container-healthchecker` binary to work correctly. A reference version has been placed in the `docker` skeleton directory. This should only impact platform developers, and users of our Docker image will already have the file available. -- The default image used for Herokuish Buildpack builds is now `gliderlabs/herokuish:latest-24`, and is based on both the `heroku-22` stack as well as Ubuntu 22.04. Users that wish to stick with the old, `heroku-20`/Ubuntu 20.04 builder may specify `gliderlabs/herokuish:latest-20` as their builder image. Please see the [herokuish buildpack deployment documentation](/docs/deployment/builders/herokuish-buildpacks.md#customizing-the-buildpack-stack-builder) for more information on how to specify a custom buildpack stack builder. +- The default image used for Herokuish Buildpack builds is now `gliderlabs/herokuish:latest-22`, and is based on both the `heroku-22` stack as well as Ubuntu 22.04. Users that wish to stick with the old, `heroku-20`/Ubuntu 20.04 builder may specify `gliderlabs/herokuish:latest-20` as their builder image. Please see the [herokuish buildpack deployment documentation](/docs/deployment/builders/herokuish-buildpacks.md#customizing-the-buildpack-stack-builder) for more information on how to specify a custom buildpack stack builder. - The default image used for Cloud Native Buildpack builds is now `heroku/builder:22`, and is based on both the `heroku-22` stack as well as Ubuntu 22.04. Users that wish to stick with the old, `heroku-20`/Ubuntu 20.04 builder may specify `heroku/buildpacks:20` as their builder image. Please see the [herokuish buildpack deployment documentation](/docs/deployment/builders/herokuish-buildpacks.md#customizing-the-buildpack-stack-builder) for more information on how to specify a custom buildpack stack builder. ## Deprecations From cea4f5f444445164640bb3047f337e82100e50ea Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 02:00:19 -0400 Subject: [PATCH 22/79] fix: remove systemd on docker-based installations The systemd package was installed by default for some reason, causing issues when interacting with init processes. Specifically, we would detect systemctl on runit systems and incorrectly invoke that when restarting processes. Additionally, ensure the copied binaries are executable. Closes #7089 --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ee914c7d6..63cd60e58 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,6 +20,7 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3005,DL3008 RUN mkdir -p /etc/apt/keyrings \ && mkdir -p /etc/apt/keyrings \ + && apt-get remove -y systemd && apt-get autoremove -y && apt-get update && apt-get install -y --no-install-recommends gpg lsb-release \ && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \ && apt-get update \ @@ -45,6 +46,7 @@ COPY ./docker . RUN \ rsync -a /tmp/ / \ + && chmod +x /usr/local/bin/* \ && rm -rf /tmp/* \ && rm /etc/runit/runsvdir/default/sshd/down \ && chown -R dokku:dokku /home/dokku/ \ @@ -59,7 +61,6 @@ RUN \ && ln -sf /mnt/dokku/var/lib/dokku/data /var/lib/dokku/data \ && ln -sf /mnt/dokku/var/lib/dokku/services /var/lib/dokku/services \ && mv /etc/my_init.d/00_regen_ssh_host_keys.sh /etc/my_init.d/15_regen_ssh_host_keys \ - && rm -f /usr/bin/systemctl \ && rm -f /etc/nginx/sites-enabled/default /usr/share/nginx/html/index.html /etc/my_init.d/10_syslog-ng.init \ && rm -f /usr/local/openresty/nginx/conf/sites-enabled/default /usr/share/openresty/html/index.html \ && sed -i '/imklog/d' /etc/rsyslog.conf \ From e2978233bb69b4fdf82236c40a89dfc7d1e4de97 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 17:18:32 -0400 Subject: [PATCH 23/79] feat: upgrade herokuish from 0.9.2 to 0.10.1 --- contrib/dependencies.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/dependencies.json b/contrib/dependencies.json index 3aa03eaf6..9f5e16bf5 100644 --- a/contrib/dependencies.json +++ b/contrib/dependencies.json @@ -86,11 +86,11 @@ }, { "name": "herokuish", - "version": "0.9.2", + "version": "0.10.1", "urls": { - "amd64": "https://github.com/gliderlabs/herokuish/releases/download/v0.9.2/herokuish_0.9.2_linux_x86_64.tgz", - "arm64": "https://github.com/gliderlabs/herokuish/releases/download/v0.9.2/herokuish_0.9.2_linux_x86_64.tgz" + "amd64": "https://github.com/gliderlabs/herokuish/releases/download/v0.10.1/herokuish_0.10.1_linux_x86_64.tgz", + "arm64": "https://github.com/gliderlabs/herokuish/releases/download/v0.10.1/herokuish_0.10.1_linux_x86_64.tgz" } } ] -} +} \ No newline at end of file From e8494f94ae58022eaf92a81ccf8918e7ae17d374 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 05:29:53 -0400 Subject: [PATCH 24/79] chore: ensure ssh config file has the correct permissions --- tests.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/tests.mk b/tests.mk index bee1c5ad1..a95466efe 100644 --- a/tests.mk +++ b/tests.mk @@ -79,6 +79,7 @@ else ifeq ($(shell grep $(DOKKU_DOMAIN) /root/.ssh/config),) else sed --in-place 's/Port 22 \r/Port $(DOKKU_SSH_PORT) \r/g' /root/.ssh/config cat /root/.ssh/config + chown 600 /root/.ssh/config endif ifneq ($(wildcard /etc/ssh/sshd_config),) From 53f209b30714f82f1f66329756d744a7349bea64 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 05:30:30 -0400 Subject: [PATCH 25/79] chore: vendor sshd_config file This will allow better diffing once features are enabled/disabled. --- docker/etc/ssh/sshd_config | 133 +++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 docker/etc/ssh/sshd_config diff --git a/docker/etc/ssh/sshd_config b/docker/etc/ssh/sshd_config new file mode 100644 index 000000000..ecd450029 --- /dev/null +++ b/docker/etc/ssh/sshd_config @@ -0,0 +1,133 @@ +# $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $ + +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin + +# The strategy used for options in the default sshd_config shipped with +# OpenSSH is to specify options with their default value where +# possible, but leave them commented. Uncommented options change a +# default value. + +UseDNS no + +Port 22 +Port 22333 +#AddressFamily any +#ListenAddress 0.0.0.0 +#ListenAddress :: + +# Disable legacy (protocol version 1) support in the server for new +# installations. In future the default will change to require explicit +# activation of protocol 1 +Protocol 2 + +# HostKey for protocol version 1 +#HostKey /etc/ssh_host_key +# HostKeys for protocol version 2 +#HostKey /etc/ssh_host_rsa_key +#HostKey /etc/ssh_host_dsa_key + +# Lifetime and size of ephemeral version 1 server key +#KeyRegenerationInterval 1h +#ServerKeyBits 1024 + +# Logging +# obsoletes QuietMode and FascistLogging +SyslogFacility AUTHPRIV +#LogLevel INFO + +# Authentication: + +#LoginGraceTime 2m +#PermitRootLogin yes +#StrictModes yes +#MaxAuthTries 6 +#MaxSessions 10 + +#RSAAuthentication yes +#PubkeyAuthentication yes +#AuthorizedKeysFile .ssh/authorized_keys + +# For this to work you will also need host keys in /etc/ssh_known_hosts +#RhostsRSAAuthentication no +# similar for protocol version 2 +#HostbasedAuthentication no +# Change to yes if you don't trust ~/.ssh/known_hosts for +# RhostsRSAAuthentication and HostbasedAuthentication +#IgnoreUserKnownHosts no +# Don't read the user's ~/.rhosts and ~/.shosts files +#IgnoreRhosts yes + +# To disable tunneled clear text passwords, change to no here! Also, +# remember to set the UsePAM setting to 'no'. +#PasswordAuthentication no +#PermitEmptyPasswords no + +# SACL options +# The default for the SACLSupport option is now "no", as this option has been +# depreciated in favor of SACL enforcement in the PAM configuration (/etc/pam.d/sshd). +#SACLSupport no + +# Change to no to disable s/key passwords +# Disabled for passenger-docker. We only allow key authentication. +ChallengeResponseAuthentication no + +# Kerberos options +#KerberosAuthentication no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes +#GSSAPIStrictAcceptorCheck yes +#GSSAPIKeyExchange no + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +# Also, PAM will deny null passwords by default. If you need to allow +# null passwords, add the " nullok" option to the end of the +# securityserver.so line in /etc/pam.d/sshd. +# UsePAM yes + +#AllowAgentForwarding yes +#AllowTcpForwarding yes +#GatewayPorts no +X11Forwarding yes +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PrintMotd yes +#PrintLastLog yes +#TCPKeepAlive yes +#UseLogin no +#UsePrivilegeSeparation yes +#PermitUserEnvironment no +#Compression delayed +#ClientAliveInterval 0 +#ClientAliveCountMax 3 +#UseDNS yes +#PidFile /var/run/sshd.pid +#MaxStartups 10 +#PermitTunnel no +#ChrootDirectory none + +# no default banner path +#Banner none + +# override default of no subsystems +Subsystem sftp /usr/lib/openssh/sftp-server + +# Example of overriding settings on a per-user basis +#Match User anoncvs +# X11Forwarding no +# AllowTcpForwarding no +# ForceCommand cvs server \ No newline at end of file From b24d5f497d133e04df5680b846d1652446384a10 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 05:31:24 -0400 Subject: [PATCH 26/79] feat: disable password authentication to dokku docker container This is insecure and isn't necessary as the container is only used for push-based deployment. --- docker/etc/ssh/sshd_config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/etc/ssh/sshd_config b/docker/etc/ssh/sshd_config index ecd450029..ae20d8d0f 100644 --- a/docker/etc/ssh/sshd_config +++ b/docker/etc/ssh/sshd_config @@ -62,7 +62,7 @@ SyslogFacility AUTHPRIV # To disable tunneled clear text passwords, change to no here! Also, # remember to set the UsePAM setting to 'no'. -#PasswordAuthentication no +PasswordAuthentication no #PermitEmptyPasswords no # SACL options From 8a6c22ad6ca2d4e4dce2299f7d676b86c457f81e Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 05:32:11 -0400 Subject: [PATCH 27/79] fix: ensure UsePAM is on to enable sshcommand usage --- docker/etc/ssh/sshd_config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/etc/ssh/sshd_config b/docker/etc/ssh/sshd_config index ae20d8d0f..634ce8b27 100644 --- a/docker/etc/ssh/sshd_config +++ b/docker/etc/ssh/sshd_config @@ -97,7 +97,7 @@ ChallengeResponseAuthentication no # Also, PAM will deny null passwords by default. If you need to allow # null passwords, add the " nullok" option to the end of the # securityserver.so line in /etc/pam.d/sshd. -# UsePAM yes +UsePAM yes #AllowAgentForwarding yes #AllowTcpForwarding yes From 5493ca5978f3d172af91418eeb60fbb02b37de13 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 05:35:15 -0400 Subject: [PATCH 28/79] fix: force sv usage in docker container to avoid cases where systemd is used instead On newer Ubuntu Noble, cron (among other things) has a transitory dependency on systemd, forcing our systemd/runit detection to fail. This change allows overriding the detected init on Ubuntu systems, ensuring we always do the right thing when interacting with init. --- Dockerfile | 2 +- docker/etc/my_init.d/10_dokku_init | 6 +++--- plugins/nginx-vhosts/install | 4 +++- plugins/nginx-vhosts/internal-functions | 4 +++- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 63cd60e58..7251a18cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,7 +35,7 @@ RUN mkdir -p /etc/apt/keyrings \ && apt-get update \ && apt-get upgrade -y \ && apt-get -y --no-install-recommends --only-upgrade install openssl openssh-server \ - && apt-get -y --no-install-recommends install rsync "/tmp/dokku-$(dpkg --print-architecture).deb" \ + && DOKKU_INIT_SYSTEM=sv apt-get -y --no-install-recommends install rsync "/tmp/dokku-$(dpkg --print-architecture).deb" \ && apt-get purge -y syslog-ng-core \ && apt-get autoremove -y \ && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* diff --git a/docker/etc/my_init.d/10_dokku_init b/docker/etc/my_init.d/10_dokku_init index 6e5ad28e3..14299cd2e 100755 --- a/docker/etc/my_init.d/10_dokku_init +++ b/docker/etc/my_init.d/10_dokku_init @@ -71,13 +71,13 @@ main() { dokku --quiet domains:set-global "$DOKKU_HOSTNAME" fi + touch /etc/default/dokku + echo "export DOKKU_INIT_SYSTEM=sv" >>/etc/default/dokku if [[ -x /usr/local/bin/docker ]]; then - mkdir -p /home/dokku/.dokkurc - echo "export DOCKER_BIN=/usr/local/bin/docker" >"/home/dokku/.dokkurc/DOCKER_BIN" + echo "export DOCKER_BIN=/usr/local/bin/docker" >>/etc/default/dokku fi if [[ -n "$DOKKU_HOST_ROOT" ]]; then - touch /etc/default/dokku echo "export DOKKU_HOST_ROOT=$DOKKU_HOST_ROOT" >>/etc/default/dokku chown dokku:dokku /etc/default/dokku fi diff --git a/plugins/nginx-vhosts/install b/plugins/nginx-vhosts/install index 229b6485f..551b29cf6 100755 --- a/plugins/nginx-vhosts/install +++ b/plugins/nginx-vhosts/install @@ -82,7 +82,9 @@ trigger-nginx-vhosts-install() { ;; ubuntu) - if [[ -x "$systemctl_path" ]]; then + if [[ "$DOKKU_INIT_SYSTEM" == "sv" ]]; then + echo "%dokku ALL=(ALL) NOPASSWD:/usr/bin/sv enable $NGINX_INIT_NAME, /usr/bin/sv disable $NGINX_INIT_NAME, /usr/bin/sv reload $NGINX_INIT_NAME, /usr/bin/sv start $NGINX_INIT_NAME, /usr/bin/sv stop $NGINX_INIT_NAME, $NGINX_BIN -t, $NGINX_BIN -t -c *" >"$NGINX_SUDOERS_FILE" + elif [[ -x "$systemctl_path" ]]; then echo "%dokku ALL=(ALL) NOPASSWD:$systemctl_path enable $NGINX_INIT_NAME, $systemctl_path disable $NGINX_INIT_NAME, $systemctl_path reload $NGINX_INIT_NAME, $systemctl_path start $NGINX_INIT_NAME, $systemctl_path stop $NGINX_INIT_NAME, $NGINX_BIN -t, $NGINX_BIN -t -c *" >"$NGINX_SUDOERS_FILE" elif [[ -x /usr/bin/sv ]]; then echo "%dokku ALL=(ALL) NOPASSWD:/usr/bin/sv enable $NGINX_INIT_NAME, /usr/bin/sv disable $NGINX_INIT_NAME, /usr/bin/sv reload $NGINX_INIT_NAME, /usr/bin/sv start $NGINX_INIT_NAME, /usr/bin/sv stop $NGINX_INIT_NAME, $NGINX_BIN -t, $NGINX_BIN -t -c *" >"$NGINX_SUDOERS_FILE" diff --git a/plugins/nginx-vhosts/internal-functions b/plugins/nginx-vhosts/internal-functions index 92455ee1e..1aad3a948 100755 --- a/plugins/nginx-vhosts/internal-functions +++ b/plugins/nginx-vhosts/internal-functions @@ -549,7 +549,9 @@ fn-nginx-vhosts-nginx-init-cmd() { ubuntu) # support docker-based installations - if [[ -x "$systemctl_path" ]]; then + if [[ "$DOKKU_INIT_SYSTEM" == "sv" ]]; then + sudo /usr/bin/sv "$CMD" "$NGINX_INIT_NAME" + elif [[ -x "$systemctl_path" ]]; then sudo "$systemctl_path" "$CMD" "$NGINX_INIT_NAME" elif [[ -x /usr/bin/sv ]]; then sudo /usr/bin/sv "$CMD" "$NGINX_INIT_NAME" From 1f9e22eed26964c6cd2273a73499319c7d4b76ec Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 05:36:21 -0400 Subject: [PATCH 29/79] fix: ensure rsyslog is always available before dokku is installed --- debian/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/control b/debian/control index cc5bb4961..b1ef5f1f1 100644 --- a/debian/control +++ b/debian/control @@ -3,9 +3,9 @@ Version: 0.34.9 Section: web Priority: optional Architecture: amd64 -Depends: apache2-utils, locales, git, cpio, cron, curl, man-db, netcat, sshcommand, docker-engine-cs (>= 19.03.0) | docker-engine (>= 19.03.0) | docker-io (>= 19.03.0) | docker.io (>= 19.03.0) | docker-ce (>= 19.03.0) | docker-ee (>= 19.03.0) | moby-engine, docker-compose-plugin | moby-compose, docker-buildx-plugin | moby-buildx, docker-container-healthchecker, docker-image-labeler, lambda-builder, net-tools, netrc, parallel, procfile-util, rsync, rsyslog, dos2unix, jq, unzip, util-linux +Depends: apache2-utils, locales, git, cpio, cron, curl, man-db, netcat, sshcommand, docker-engine-cs (>= 19.03.0) | docker-engine (>= 19.03.0) | docker-io (>= 19.03.0) | docker.io (>= 19.03.0) | docker-ce (>= 19.03.0) | docker-ee (>= 19.03.0) | moby-engine, docker-compose-plugin | moby-compose, docker-buildx-plugin | moby-buildx, docker-container-healthchecker, docker-image-labeler, lambda-builder, net-tools, netrc, parallel, procfile-util, rsync, dos2unix, jq, unzip, util-linux Recommends: herokuish, bash-completion, dokku-update, dokku-event-listener -Pre-Depends: gliderlabs-sigil, nginx (>= 1.8.0) | openresty, bind9-dnsutils, cgroupfs-mount | cgroup-lite, plugn, sudo, python3, debconf +Pre-Depends: gliderlabs-sigil, nginx (>= 1.8.0) | openresty, bind9-dnsutils, cgroupfs-mount | cgroup-lite, debconf, plugn, sudo, python3, rsyslog Maintainer: Jose Diaz-Gonzalez Description: Docker-powered PaaS that helps build and manage the lifecycle of applications Dokku is an extensible, open source Platform as a Service From d55ba8e189a38e9ad815c110eee3c8fbce4c8ad1 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 05:37:34 -0400 Subject: [PATCH 30/79] fix: detect correct init when interacting with rsyslog on install This change also skips running a restart of rsyslog as during install, the service isn't properly initiated. While this breaks upgrades of Dokku within containers, that is not how upgrades of container-based Dokku should work, so this is a fine trade-off. --- plugins/20_events/install | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/plugins/20_events/install b/plugins/20_events/install index ffebb1977..f8f080adb 100755 --- a/plugins/20_events/install +++ b/plugins/20_events/install @@ -72,8 +72,39 @@ EOF flag_rsyslog_needs_restart=y fi - if [[ -f "$DOKKU_RSYSLOG_FILTER" && "$flag_rsyslog_needs_restart" == "y" ]]; then - service rsyslog restart + local systemctl_path=/bin/systemctl + if [[ -x /usr/bin/systemctl ]]; then + systemctl_path=/usr/bin/systemctl + fi + + if [[ -f "$DOKKU_RSYSLOG_FILTER" ]] && [[ "$flag_rsyslog_needs_restart" == "y" ]]; then + case "$DOKKU_DISTRO" in + debian | raspbian) + if [[ -x "$systemctl_path" ]]; then + systemctl restart rsyslog + else + /usr/sbin/invoke-rc.d rsyslog restart + fi + ;; + ubuntu) + if [[ "$DOKKU_INIT_SYSTEM" == "sv" ]]; then + # avoid failing runit init calls on install + # the runit binaries are not yet available during dockerfile building + true + elif [[ -x "$systemctl_path" ]]; then + systemctl restart rsyslog + elif [[ -x /usr/bin/sv ]]; then + # avoid failing runit init calls on install + # the runit binaries are not yet available during dockerfile building + true + else + invoke-rc.d rsyslog restart + fi + ;; + arch) + systemctl restart rsyslog + ;; + esac fi [[ ! "$DOKKU_EVENTS" ]] || dokku_log_plugn_trigger_call "$(basename "$0")" "$@" From 7334692d00eeb55eff6d6e1b6e970bfa96201723 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 05:37:55 -0400 Subject: [PATCH 31/79] fix: correct sudoers.so file location on ubuntu noble --- docker/etc/my_init.d/10_dokku_init | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docker/etc/my_init.d/10_dokku_init b/docker/etc/my_init.d/10_dokku_init index 14299cd2e..b5175a04c 100755 --- a/docker/etc/my_init.d/10_dokku_init +++ b/docker/etc/my_init.d/10_dokku_init @@ -20,7 +20,11 @@ log-warn() { support-userns() { chown 0:0 /usr/bin/sudo chmod 4755 /usr/bin/sudo - chown 0:0 /usr/lib/sudo/sudoers.so + if [[ -f /usr/lib/sudo/sudoers.so ]]; then + chown 0:0 /usr/lib/sudo/sudoers.so + elif [[ -f /usr/libexec/sudo/sudoers.so ]]; then + chown 0:0 /usr/libexec/sudo/sudoers.so + fi chown -R 0:0 /etc/sudoers chown -R 0:0 /etc/sudoers.d chown -R 0:0 /run/sshd From 0a4f36c865b3f3f6a124daaf70a52b0b19a06f24 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 05:38:15 -0400 Subject: [PATCH 32/79] feat: upgrade docker container to ubuntu noble --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7251a18cd..0deffeb54 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM phusion/baseimage:focal-1.2.0 +FROM phusion/baseimage:noble-1.0.0 CMD ["/sbin/my_init"] From 5b511a5f28e0ba9524b4efdeec17f40bf11eca8c Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 05:52:20 -0400 Subject: [PATCH 33/79] fix: revert chown on ssh config file --- tests.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/tests.mk b/tests.mk index a95466efe..bee1c5ad1 100644 --- a/tests.mk +++ b/tests.mk @@ -79,7 +79,6 @@ else ifeq ($(shell grep $(DOKKU_DOMAIN) /root/.ssh/config),) else sed --in-place 's/Port 22 \r/Port $(DOKKU_SSH_PORT) \r/g' /root/.ssh/config cat /root/.ssh/config - chown 600 /root/.ssh/config endif ifneq ($(wildcard /etc/ssh/sshd_config),) From ce1c7543d23f38ab7ca94ea86cf56eeac5e7b9ba Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 06:17:55 -0400 Subject: [PATCH 34/79] fix: correct issues in tests referencing now missing python binary --- tests/apps/dockerfile-release/Procfile | 2 +- tests/unit/cron.bats | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/apps/dockerfile-release/Procfile b/tests/apps/dockerfile-release/Procfile index fc5b1ca69..cb6e6565b 100644 --- a/tests/apps/dockerfile-release/Procfile +++ b/tests/apps/dockerfile-release/Procfile @@ -1 +1 @@ -release: pipenv run python manage.py migrate +release: pipenv run python3 manage.py migrate diff --git a/tests/unit/cron.bats b/tests/unit/cron.bats index 9257e907b..097104af9 100644 --- a/tests/unit/cron.bats +++ b/tests/unit/cron.bats @@ -87,7 +87,7 @@ teardown() { echo "output: $output" echo "status: $status" assert_success - assert_output_contains "python task.py schedule" + assert_output_contains "python3 task.py schedule" } @test "(cron) create [single-short]" { @@ -100,7 +100,7 @@ teardown() { echo "output: $output" echo "status: $status" assert_success - assert_output_contains "python task.py daily" + assert_output_contains "python3 task.py daily" } @test "(cron) create [multiple]" { @@ -113,8 +113,8 @@ teardown() { echo "output: $output" echo "status: $status" assert_success - assert_output_contains "python task.py first" - assert_output_contains "python task.py second" + assert_output_contains "python3 task.py first" + assert_output_contains "python3 task.py second" } @test "(cron) injected entries" { @@ -255,7 +255,7 @@ template_cron_file_invalid_schedule() { { "cron": [ { - "command": "python task.py", + "command": "python3 task.py", "schedule": "@nonstandard" } ] @@ -272,7 +272,7 @@ template_cron_file_invalid_schedule_seconds() { { "cron": [ { - "command": "python task.py", + "command": "python3 task.py", "schedule": "0 5 * * * *" } ] @@ -289,11 +289,11 @@ template_cron_file_valid() { { "cron": [ { - "command": "python task.py schedule", + "command": "python3 task.py schedule", "schedule": "5 5 5 5 5" }, { - "command": "python task.py schedule now", + "command": "python3 task.py schedule now", "schedule": "6 5 5 5 5" } ] @@ -310,7 +310,7 @@ template_cron_file_valid_single() { { "cron": [ { - "command": "python task.py schedule", + "command": "python3 task.py schedule", "schedule": "5 5 5 5 5" } ] @@ -326,7 +326,7 @@ template_cron_file_valid_short() { { "cron": [ { - "command": "python task.py daily", + "command": "python3 task.py daily", "schedule": "@daily" } ] @@ -343,11 +343,11 @@ template_cron_file_valid_multiple() { { "cron": [ { - "command": "python task.py first", + "command": "python3 task.py first", "schedule": "5 5 5 5 5" }, { - "command": "python task.py second", + "command": "python3 task.py second", "schedule": "@daily" } ] From 9110e2c365fdce3c75226cf0e8a6dd3027b4a2be Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 06:18:32 -0400 Subject: [PATCH 35/79] chore: use python3 instead of python --- .github/workflows/ci.yml | 2 +- contrib/build-docs | 2 +- contrib/release-dokku | 2 +- docs/_build/entrypoint | 2 +- docs/networking/port-management.md | 2 +- tests/unit/run_1.bats | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0f96cde98..34191a18e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,7 +70,7 @@ jobs: - name: set matrix for build id: set-matrix run: | - json=$(python .github/commands/matrix) + json=$(python3 .github/commands/matrix) echo $json echo "matrix=$json" >> $GITHUB_OUTPUT diff --git a/contrib/build-docs b/contrib/build-docs index 59f43609a..f454416cd 100755 --- a/contrib/build-docs +++ b/contrib/build-docs @@ -125,7 +125,7 @@ main() { echo "====> Rebuild versions" if [[ -f "tmp/docs-build/versions.json" ]]; then - python contrib/sort-mkdocs-versions + python3 contrib/sort-mkdocs-versions else echo " No version file exists" fi diff --git a/contrib/release-dokku b/contrib/release-dokku index 2251fc28f..bcfcc40cf 100755 --- a/contrib/release-dokku +++ b/contrib/release-dokku @@ -232,7 +232,7 @@ fn-repo-update() { if [[ "$RELEASE" == 'patch' ]]; then fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/assets/versions.json else - versions=$(python -c 'import json,sys;d=json.load(sys.stdin);d["max-versions"].append("'"${NEXT_VERSION}"'"); print(json.dumps(d, indent=2, sort_keys=True))' docs/assets/versions.json git add docs/assets/versions.json fi diff --git a/docs/_build/entrypoint b/docs/_build/entrypoint index 7e842fb30..9d0148528 100755 --- a/docs/_build/entrypoint +++ b/docs/_build/entrypoint @@ -3,7 +3,7 @@ set -eo pipefail write-mkdocs() { if [[ -f /usr/src/source/contrib/write-mkdocs ]]; then - if ! python /usr/src/source/contrib/write-mkdocs; then + if ! python3 /usr/src/source/contrib/write-mkdocs; then exit 0 fi fi diff --git a/docs/networking/port-management.md b/docs/networking/port-management.md index 870551298..d30c34f3a 100644 --- a/docs/networking/port-management.md +++ b/docs/networking/port-management.md @@ -163,7 +163,7 @@ For example, if the Dokku installation is configured with the domain `dokku.me` ``` FROM ubuntu:24.04 EXPOSE 1234 -CMD python -m SimpleHTTPServer 1234 +CMD python3 -m SimpleHTTPServer 1234 ``` The application would be exposed to the user at `node-js-app.dokku.me:1234`. If this is not desired, the following application configuration may be applied: diff --git a/tests/unit/run_1.bats b/tests/unit/run_1.bats index 1ab4ee1dd..f84d9c0af 100644 --- a/tests/unit/run_1.bats +++ b/tests/unit/run_1.bats @@ -29,7 +29,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "dokku --force --quiet run $TEST_APP python -V" + run /bin/bash -c "dokku --force --quiet run $TEST_APP python3 -V" echo "output: $output" echo "status: $status" assert_success From 50da7266976c6517452b163326315592ff5c09e9 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 07:01:15 -0400 Subject: [PATCH 36/79] chore: update express and node in check-root app --- .gitignore | 1 + tests/apps/checks-root/.node-version | 1 + tests/apps/checks-root/index.js | 4 +- tests/apps/checks-root/package-lock.json | 933 +++++++++++++++++++++++ tests/apps/checks-root/package.json | 6 +- 5 files changed, 940 insertions(+), 5 deletions(-) create mode 100644 tests/apps/checks-root/.node-version create mode 100644 tests/apps/checks-root/package-lock.json diff --git a/.gitignore b/.gitignore index 0b4f5c0e7..39d3bcbad 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ tmp coverage.out site go.work.sum +node_modules \ No newline at end of file diff --git a/tests/apps/checks-root/.node-version b/tests/apps/checks-root/.node-version new file mode 100644 index 000000000..3516580bb --- /dev/null +++ b/tests/apps/checks-root/.node-version @@ -0,0 +1 @@ +20.17.0 diff --git a/tests/apps/checks-root/index.js b/tests/apps/checks-root/index.js index 67ba7ab2a..6b83f0902 100644 --- a/tests/apps/checks-root/index.js +++ b/tests/apps/checks-root/index.js @@ -1,5 +1,5 @@ -var express = require('express'); -var app = express(); +const express = require('express'); +const app = express(); app.get('/', function(req, res) { res.sendStatus(404); diff --git a/tests/apps/checks-root/package-lock.json b/tests/apps/checks-root/package-lock.json new file mode 100644 index 000000000..3e07e3fc1 --- /dev/null +++ b/tests/apps/checks-root/package-lock.json @@ -0,0 +1,933 @@ +{ + "name": "node-example", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "node-example", + "version": "0.0.1", + "dependencies": { + "express": "5.x" + }, + "engines": { + "node": "20.17.x" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", + "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.0.1.tgz", + "integrity": "sha512-PagxbjvuPH6tv0f/kdVbFGcb79D236SLcDTs6DrQ7GizJ88S1UWP4nMXFEo/I4fdhGRGabvFfFjVGm3M7U8JwA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "3.1.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.5.2", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "^3.0.0", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/body-parser/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.1.tgz", + "integrity": "sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.0.0.tgz", + "integrity": "sha512-V4UkHQc+B7ldh1YC84HCXHwf60M4BOMvp9rkvTUWCK5apqDC1Esnbid4wm6nFyVuDy8XMfETsJw5lsIGBWyo0A==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.0.1", + "content-disposition": "^1.0.0", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "^1.2.1", + "debug": "4.3.6", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "^2.0.0", + "fresh": "2.0.0", + "http-errors": "2.0.0", + "merge-descriptors": "^2.0.0", + "methods": "~1.1.2", + "mime-types": "^3.0.0", + "on-finished": "2.4.1", + "once": "1.4.0", + "parseurl": "~1.3.3", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "router": "^2.0.0", + "safe-buffer": "5.2.1", + "send": "^1.1.0", + "serve-static": "^2.1.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "^2.0.0", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/finalhandler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.0.0.tgz", + "integrity": "sha512-MX6Zo2adDViYh+GcxxB1dpO43eypOGUOL12rLCOTMQv/DfIbpSJUy4oQIIZhVZkH9e+bZWKMon0XHFEju16tkQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz", + "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.0.tgz", + "integrity": "sha512-XqoSHeCGjVClAmoGFG3lVFqQFRIrTVw2OH3axRqAcfaw+gHWIfnASS92AV+Rl/mk0MupgZTRHQOjxY6YVnzK5w==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.53.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.1.0.tgz", + "integrity": "sha512-Bqn3vc8CMHty6zuD+tG23s6v2kwxslHEhTj4eYaVKGIEB+YX/2wd0/rgXLFD9G9id9KCtbVy/3ZgmvZjpa0UdQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/router": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.0.0.tgz", + "integrity": "sha512-dIM5zVoG8xhC6rnSN8uoAgFARwTE7BQs8YwHEvK0VCmfxQXMaOuA1uiR1IPwsW7JyK5iTt7Od/TC9StasS2NPQ==", + "license": "MIT", + "dependencies": { + "array-flatten": "3.0.0", + "is-promise": "4.0.0", + "methods": "~1.1.2", + "parseurl": "~1.3.3", + "path-to-regexp": "^8.0.0", + "setprototypeof": "1.2.0", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/send": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.1.0.tgz", + "integrity": "sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "destroy": "^1.2.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "http-errors": "^2.0.0", + "mime-types": "^2.1.35", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/send/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.1.0.tgz", + "integrity": "sha512-A3We5UfEjG8Z7VkDv6uItWw6HY2bBSBJT1KtVESn6EOoOr2jAxNhxWCLY3jDE2WcuHXByWju74ck3ZgLwL8xmA==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.0.tgz", + "integrity": "sha512-gd0sGezQYCbWSbkZr75mln4YBidWUN60+devscpLF5mtRDUpiaTvKpBNrdaCvel1NdR2k6vclXybU5fBd2i+nw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + } + } +} diff --git a/tests/apps/checks-root/package.json b/tests/apps/checks-root/package.json index d378c6327..bb391036b 100644 --- a/tests/apps/checks-root/package.json +++ b/tests/apps/checks-root/package.json @@ -2,12 +2,12 @@ "name": "node-example", "version": "0.0.1", "dependencies": { - "express": "4.x" + "express": "5.x" }, "engines": { - "node": "4.2.x" + "node": "20.17.x" }, "scripts": { "start": "node index.js" } -} +} \ No newline at end of file From cda0e4150dbb6eaacf6a75c34f5baa40bcfe3858 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 07:01:43 -0400 Subject: [PATCH 37/79] debug: turn on trace mode when deleting apps --- tests/test_deploy | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_deploy b/tests/test_deploy index 01ecbda18..2dc397421 100755 --- a/tests/test_deploy +++ b/tests/test_deploy @@ -13,7 +13,9 @@ REPO="test-$(basename "$APP")-$RANDOM" ssh "$REMOTE" events:on destroy_app() { + ssh "$REMOTE" trace:on ssh "$REMOTE" apps:destroy "$REPO" --force + ssh "$REMOTE" trace:off ssh "$REMOTE" events:off } From ffd8fddff10c5a9af92ac312782a795eb7e17cdd Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 07:24:45 -0400 Subject: [PATCH 38/79] chore: separate out docker setup and check the contents of the nginx sudoers file --- .github/workflows/ci.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 34191a18e..64e5c1dcf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -167,11 +167,15 @@ jobs: - name: ci-setup run: ./.github/commands/ci-setup + - name: docker-container-setup + run: | + ./tests/ci/setup.sh docker + - name: test docker deploys shell: bash timeout-minutes: 20 run: | - ./tests/ci/setup.sh docker + docker exec dokku bash -c "cat /etc/sudoers.d/dokku-nginx" DOKKU_SSH_PORT=3022 sudo -E make -e test-ci-docker go-tests: From cacd6a9a14927b6410e1c67b3f62e165f1715264 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 07:25:59 -0400 Subject: [PATCH 39/79] debug: show the entire inspect output --- tests/unit/ps-general-1.bats | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/unit/ps-general-1.bats b/tests/unit/ps-general-1.bats index d1a0ffcf0..61adc87ad 100644 --- a/tests/unit/ps-general-1.bats +++ b/tests/unit/ps-general-1.bats @@ -194,6 +194,11 @@ web echo "status: $status" assert_success + run /bin/bash -c "docker inspect $CID" + echo "output: $output" + echo "status: $status" + assert_success + CID=$(<$DOKKU_ROOT/$TEST_APP/CONTAINER.web.1) run /bin/bash -c "docker inspect -f '{{ .HostConfig.RestartPolicy.Name }}:{{ .HostConfig.RestartPolicy.MaximumRetryCount }}' $CID" echo "output: $output" From 0633f491ba0abae1a65c5bd29c60d6644b95f4d1 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 07:52:14 -0400 Subject: [PATCH 40/79] fix: set CID variable --- tests/unit/ps-general-1.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/ps-general-1.bats b/tests/unit/ps-general-1.bats index 61adc87ad..0287d9d53 100644 --- a/tests/unit/ps-general-1.bats +++ b/tests/unit/ps-general-1.bats @@ -194,12 +194,12 @@ web echo "status: $status" assert_success + CID=$(<$DOKKU_ROOT/$TEST_APP/CONTAINER.web.1) run /bin/bash -c "docker inspect $CID" echo "output: $output" echo "status: $status" assert_success - CID=$(<$DOKKU_ROOT/$TEST_APP/CONTAINER.web.1) run /bin/bash -c "docker inspect -f '{{ .HostConfig.RestartPolicy.Name }}:{{ .HostConfig.RestartPolicy.MaximumRetryCount }}' $CID" echo "output: $output" echo "status: $status" From bbff88a8fb395add18a673aeba72c6a3c44830d9 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 07:54:40 -0400 Subject: [PATCH 41/79] fix: run dokku commands after setting dokku env vars --- docker/etc/my_init.d/10_dokku_init | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docker/etc/my_init.d/10_dokku_init b/docker/etc/my_init.d/10_dokku_init index b5175a04c..e8b26e105 100755 --- a/docker/etc/my_init.d/10_dokku_init +++ b/docker/etc/my_init.d/10_dokku_init @@ -58,6 +58,17 @@ main() { fi done + touch /etc/default/dokku + echo "export DOKKU_INIT_SYSTEM=sv" >>/etc/default/dokku + if [[ -x /usr/local/bin/docker ]]; then + echo "export DOCKER_BIN=/usr/local/bin/docker" >>/etc/default/dokku + fi + + if [[ -n "$DOKKU_HOST_ROOT" ]]; then + echo "export DOKKU_HOST_ROOT=$DOKKU_HOST_ROOT" >>/etc/default/dokku + chown dokku:dokku /etc/default/dokku + fi + if [[ -f /mnt/dokku/plugin-list ]]; then while read line; do local plugin_name="$(echo "$line" | awk -F: '{print $1}')" @@ -75,17 +86,6 @@ main() { dokku --quiet domains:set-global "$DOKKU_HOSTNAME" fi - touch /etc/default/dokku - echo "export DOKKU_INIT_SYSTEM=sv" >>/etc/default/dokku - if [[ -x /usr/local/bin/docker ]]; then - echo "export DOCKER_BIN=/usr/local/bin/docker" >>/etc/default/dokku - fi - - if [[ -n "$DOKKU_HOST_ROOT" ]]; then - echo "export DOKKU_HOST_ROOT=$DOKKU_HOST_ROOT" >>/etc/default/dokku - chown dokku:dokku /etc/default/dokku - fi - NGINX_ROOT="/etc/nginx" if [[ -x /usr/bin/openresty ]]; then NGINX_ROOT="/usr/local/openresty/nginx/conf" From 80fb3fea08ffdff0e06ef09fc43377e8d8bf6666 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 07:55:17 -0400 Subject: [PATCH 42/79] fix: run core install triggers to force create any folders that may be missing --- docker/etc/my_init.d/10_dokku_init | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker/etc/my_init.d/10_dokku_init b/docker/etc/my_init.d/10_dokku_init index e8b26e105..3561114cd 100755 --- a/docker/etc/my_init.d/10_dokku_init +++ b/docker/etc/my_init.d/10_dokku_init @@ -80,6 +80,9 @@ main() { done Date: Sat, 21 Sep 2024 18:09:46 -0400 Subject: [PATCH 43/79] Revert "debug: turn on trace mode when deleting apps" This reverts commit cda0e4150dbb6eaacf6a75c34f5baa40bcfe3858. --- tests/test_deploy | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/test_deploy b/tests/test_deploy index 2dc397421..01ecbda18 100755 --- a/tests/test_deploy +++ b/tests/test_deploy @@ -13,9 +13,7 @@ REPO="test-$(basename "$APP")-$RANDOM" ssh "$REMOTE" events:on destroy_app() { - ssh "$REMOTE" trace:on ssh "$REMOTE" apps:destroy "$REPO" --force - ssh "$REMOTE" trace:off ssh "$REMOTE" events:off } From 7605c9a84a46a29d7a661a3433bfbfd4d3e784c3 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 18:46:03 -0400 Subject: [PATCH 44/79] fix: correctly check the phase for filtering deploy-related options --- plugins/docker-options/docker-args-deploy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/docker-options/docker-args-deploy b/plugins/docker-options/docker-args-deploy index 53a8e14ea..fc768a0cf 100755 --- a/plugins/docker-options/docker-args-deploy +++ b/plugins/docker-options/docker-args-deploy @@ -39,7 +39,7 @@ trigger-docker-options-docker-args() { ;; --restart*) - if [[ "$PHASE" == "deploy" ]]; then + if [[ "$PHASE" == "DEPLOY" ]]; then local output="$output $line" fi continue From d023f252c3efb4e2b2090c75aea7a3864e5cbf3d Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 19:42:40 -0400 Subject: [PATCH 45/79] feat: run CI linting on Ubuntu Noble --- .github/workflows/lint.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index ea0b29814..e9b676777 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -17,7 +17,7 @@ concurrency: jobs: hadolint: name: hadolint - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Clone uses: actions/checkout@v4 @@ -27,7 +27,7 @@ jobs: markdown-lint: name: markdown-lint - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Clone uses: actions/checkout@v4 @@ -44,7 +44,7 @@ jobs: packer: name: packer - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@v4 @@ -69,7 +69,7 @@ jobs: shellcheck: name: shellcheck - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Clone uses: actions/checkout@v4 @@ -79,7 +79,7 @@ jobs: shfmt: name: shfmt - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Clone uses: actions/checkout@v4 @@ -93,7 +93,7 @@ jobs: yamllint: name: yamllint - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Clone uses: actions/checkout@v4 From 4e927a1d1e12c3ac3ae63f900db91c294af19d75 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 19:43:28 -0400 Subject: [PATCH 46/79] tests: run CI doc generation on Ubuntu Noble --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index ef29e0164..36a50067f 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -13,7 +13,7 @@ concurrency: jobs: deploy: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Cloning repo uses: actions/checkout@v4 From b1406c6f656726adc17be563ead1117cee43a7bb Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 19:44:36 -0400 Subject: [PATCH 47/79] tests: run CI codeql analysis on Ubuntu Noble --- .github/workflows/codeql-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 19fe3a25a..0dca14ef4 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -30,7 +30,7 @@ concurrency: jobs: analyze: name: Analyze - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false From a594c517c852b4912bbc0b1ec641572fc69f4681 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 19:47:00 -0400 Subject: [PATCH 48/79] tests: run CI release processes on Ubuntu Noble --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 78483cff0..d3cca4ef5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,7 +19,7 @@ on: jobs: release: name: release - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }} outputs: @@ -80,7 +80,7 @@ jobs: build-digitalocean: name: build-digitalocean - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: release steps: - name: Checkout code @@ -116,7 +116,7 @@ jobs: bump-azure: name: bump-azure - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: release steps: - name: Checkout code From ebb52014163fdfcfa7ef16f6f1fc0c52bc24f5e9 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 20:36:50 -0400 Subject: [PATCH 49/79] feat: upgrade vagrant image to Ubuntu Noble --- Vagrantfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Vagrantfile b/Vagrantfile index eb55a3787..1dc933cc7 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,7 +1,7 @@ # -*- mode: ruby -*- # vi: set ft=ruby : -BOX_NAME = ENV["BOX_NAME"] || "bento/ubuntu-20.04" +BOX_NAME = ENV["BOX_NAME"] || "bento/ubuntu-24.04" BOX_CPUS = ENV["BOX_CPUS"] || "1" BOX_MEMORY = ENV["BOX_MEMORY"] || "1024" DOKKU_DOMAIN = ENV["DOKKU_DOMAIN"] || "dokku.me" From 0cfb447f422f7c1f5f93074942cac881062cc697 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 20:40:35 -0400 Subject: [PATCH 50/79] fix: correct shellcheck errors --- debian/prerm | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/debian/prerm b/debian/prerm index 577ef29d0..751e338a5 100755 --- a/debian/prerm +++ b/debian/prerm @@ -11,39 +11,39 @@ ps_backtrace() { exit 1 fi - declare -i pid=$1 + declare -i pid="$1" ppid=0 header_modifier="" while :; do - if [ $ppid -ne 0 ]; then + if [[ "$ppid" -ne 0 ]]; then header_modifier=h fi - ppid=$(ps -o ppid= $pid) - ps uww $header_modifier -p $pid - if [ $pid -eq 1 -o $pid -eq 0 ]; then + ppid="$(ps -o ppid= "$pid")" + ps uww $header_modifier -p "$pid" + if [[ "$pid" -eq 1 ]] || [[ "$pid" -eq 0 ]]; then break fi - pid=$ppid + pid="$ppid" done } main() { # HACK: Ensure that we only delete data when purging dokku from the system - if ps_backtrace $BASHPID 2>/dev/null | grep dpkg | grep -- "--purge" >/dev/null; then + if ps_backtrace "$BASHPID" 2>/dev/null | grep dpkg | grep -- "--purge" >/dev/null; then echo "Processing purge" echo "Destroying deployed applications" for app in $(DOKKU_QUIET_OUTPUT=1 dokku apps:list); do - dokku --force apps:destroy $app + dokku --force apps:destroy "$app" done # HACK: Only disable core plugins, as we don't know what data users store in non-core plugin directories echo "Disabling all core plugins" - find ${DOKKU_LIB_ROOT}/core-plugins/available -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read -r plugin; do - if [ ! -d ${DOKKU_LIB_ROOT}/plugins/available/$plugin ]; then - rm ${DOKKU_LIB_ROOT}/plugins/available/$plugin - PLUGIN_PATH=${DOKKU_LIB_ROOT}/core-plugins plugn disable $plugin - PLUGIN_PATH=${DOKKU_LIB_ROOT}/plugins plugn disable $plugin + find "${DOKKU_LIB_ROOT}/core-plugins/available" -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read -r plugin; do + if [[ ! -d "${DOKKU_LIB_ROOT}/plugins/available/$plugin" ]]; then + rm "${DOKKU_LIB_ROOT}/plugins/available/$plugin" + PLUGIN_PATH="${DOKKU_LIB_ROOT}/core-plugins" plugn disable "$plugin" + PLUGIN_PATH="${DOKKU_LIB_ROOT}/plugins" plugn disable "$plugin" fi done else From fb335107f6196d43034d429b15318cedb9f14719 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 20:45:48 -0400 Subject: [PATCH 51/79] feat: upgrade digitalocean image to Ubuntu Noble --- contrib/images/digitalocean/in_parts/012-dokku-packages | 2 +- contrib/images/digitalocean/in_parts/100-image-check | 2 +- contrib/images/digitalocean/packer.pkr.hcl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/images/digitalocean/in_parts/012-dokku-packages b/contrib/images/digitalocean/in_parts/012-dokku-packages index 730d6e450..28a08db6d 100755 --- a/contrib/images/digitalocean/in_parts/012-dokku-packages +++ b/contrib/images/digitalocean/in_parts/012-dokku-packages @@ -49,7 +49,7 @@ echo '--> Setting up dokku apt repository' curl -fsSL https://packagecloud.io/dokku/dokku/gpgkey -o /etc/apt/keyrings/dokku.asc cat >/etc/apt/sources.list.d/dokku.list < Install dependencies for dokku from new repository' diff --git a/contrib/images/digitalocean/in_parts/100-image-check b/contrib/images/digitalocean/in_parts/100-image-check index fde0fede7..992074fd3 100755 --- a/contrib/images/digitalocean/in_parts/100-image-check +++ b/contrib/images/digitalocean/in_parts/100-image-check @@ -497,7 +497,7 @@ osv=0 if [[ $OS == "Ubuntu" ]]; then ost=1 - if [[ $VER == "22.10" ]] || [[ $VER == "22.04" ]] || [[ $VER == "20.04" ]] || [[ $VER == "18.04" ]] || [[ $VER == "16.04" ]]; then + if [[ $VER == "24.04" ]] || [[ $VER == "22.10" ]] || [[ $VER == "22.04" ]] || [[ $VER == "20.04" ]] || [[ $VER == "18.04" ]] || [[ $VER == "16.04" ]]; then osv=1 fi diff --git a/contrib/images/digitalocean/packer.pkr.hcl b/contrib/images/digitalocean/packer.pkr.hcl index c0219a05a..6188da695 100644 --- a/contrib/images/digitalocean/packer.pkr.hcl +++ b/contrib/images/digitalocean/packer.pkr.hcl @@ -12,7 +12,7 @@ variable "dokku_version" { } source "digitalocean" "ubuntu" { - image = "ubuntu-22-04-x64" + image = "ubuntu-24-04-x64" region = "nyc1" size = "s-1vcpu-512mb-10gb" ssh_username = "root" From 58396b345db7b87655f6c8a8c47ce89e6040d112 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 20:47:48 -0400 Subject: [PATCH 52/79] tests: fetch packages installed in ci from Ubuntu Noble repo --- tests/ci/setup.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/ci/setup.sh b/tests/ci/setup.sh index 7350ede1e..6a7fd1b34 100755 --- a/tests/ci/setup.sh +++ b/tests/ci/setup.sh @@ -11,55 +11,55 @@ install_dependencies() { DOCKER_IMAGE_LABELER_VERSION=$(jq -r --arg name docker-image-labeler '.dependencies[] | select(.name == $name) | .version' contrib/dependencies.json) DOCKER_IMAGE_LABELER_PACKAGE_NAME="docker-image-labeler_${DOCKER_IMAGE_LABELER_VERSION}_amd64.deb" if [[ ! -f "$ROOT_DIR/build/${DOCKER_IMAGE_LABELER_PACKAGE_NAME}" ]]; then - curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/docker-image-labeler_${DOCKER_IMAGE_LABELER_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${DOCKER_IMAGE_LABELER_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/noble/docker-image-labeler_${DOCKER_IMAGE_LABELER_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${DOCKER_IMAGE_LABELER_PACKAGE_NAME}" fi DOCKER_CONTAINER_HEALTHCHECKER_VERSION=$(jq -r --arg name docker-container-healthchecker '.dependencies[] | select(.name == $name) | .version' contrib/dependencies.json) DOCKER_CONTAINER_HEALTHCHECKER_PACKAGE_NAME="docker-container-healthchecker_${DOCKER_CONTAINER_HEALTHCHECKER_VERSION}_amd64.deb" if [[ ! -f "$ROOT_DIR/build/${DOCKER_CONTAINER_HEALTHCHECKER_PACKAGE_NAME}" ]]; then - curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/docker-container-healthchecker_${DOCKER_CONTAINER_HEALTHCHECKER_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${DOCKER_CONTAINER_HEALTHCHECKER_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/noble/docker-container-healthchecker_${DOCKER_CONTAINER_HEALTHCHECKER_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${DOCKER_CONTAINER_HEALTHCHECKER_PACKAGE_NAME}" fi HEROKUISH_VERSION=$(jq -r --arg name herokuish '.recommendations[] | select(.name == $name) | .version' contrib/dependencies.json) HEROKUISH_PACKAGE_NAME="herokuish_${HEROKUISH_VERSION}_amd64.deb" if [[ ! -f "$ROOT_DIR/build/${HEROKUISH_PACKAGE_NAME}" ]]; then - curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/herokuish_${HEROKUISH_VERSION}_all.deb/download.deb" -o "$ROOT_DIR/build/${HEROKUISH_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/noble/herokuish_${HEROKUISH_VERSION}_all.deb/download.deb" -o "$ROOT_DIR/build/${HEROKUISH_PACKAGE_NAME}" fi LAMBDA_BUILDER_VERSION=$(jq -r --arg name lambda-builder '.dependencies[] | select(.name == $name) | .version' contrib/dependencies.json) LAMBDA_BUILDER_PACKAGE_NAME="lambda-builder_${LAMBDA_BUILDER_VERSION}_amd64.deb" if [[ ! -f "$ROOT_DIR/build/${LAMBDA_BUILDER_PACKAGE_NAME}" ]]; then - curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/lambda-builder_${LAMBDA_BUILDER_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${LAMBDA_BUILDER_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/noble/lambda-builder_${LAMBDA_BUILDER_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${LAMBDA_BUILDER_PACKAGE_NAME}" fi NETRC_VERSION=$(jq -r --arg name netrc '.dependencies[] | select(.name == $name) | .version' contrib/dependencies.json) NETRC_PACKAGE_NAME="netrc_${NETRC_VERSION}_amd64.deb" if [[ ! -f "$ROOT_DIR/build/${NETRC_PACKAGE_NAME}" ]]; then - curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/netrc_${NETRC_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${NETRC_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/noble/netrc_${NETRC_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${NETRC_PACKAGE_NAME}" fi PLUGN_VERSION=$(jq -r --arg name plugn '.predependencies[] | select(.name == $name) | .version' contrib/dependencies.json) PLUGN_PACKAGE_NAME="plugn_${PLUGN_VERSION}_amd64.deb" if [[ ! -f "$ROOT_DIR/build/${PLUGN_PACKAGE_NAME}" ]]; then - curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/plugn_${PLUGN_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${PLUGN_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/noble/plugn_${PLUGN_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${PLUGN_PACKAGE_NAME}" fi SSHCOMMAND_VERSION=$(jq -r --arg name sshcommand '.dependencies[] | select(.name == $name) | .version' contrib/dependencies.json) SSHCOMMAND_PACKAGE_NAME="sshcommand_${SSHCOMMAND_VERSION}_amd64.deb" if [[ ! -f "$ROOT_DIR/build/${SSHCOMMAND_PACKAGE_NAME}" ]]; then - curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/sshcommand_${SSHCOMMAND_VERSION}_all.deb/download.deb" -o "$ROOT_DIR/build/${SSHCOMMAND_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/noble/sshcommand_${SSHCOMMAND_VERSION}_all.deb/download.deb" -o "$ROOT_DIR/build/${SSHCOMMAND_PACKAGE_NAME}" fi SIGIL_VERSION=$(jq -r --arg name gliderlabs-sigil '.predependencies[] | select(.name == $name) | .version' contrib/dependencies.json) SIGIL_PACKAGE_NAME="gliderlabs-sigil_${SIGIL_VERSION}_amd64.deb" if [[ ! -f "$ROOT_DIR/build/${SIGIL_PACKAGE_NAME}" ]]; then - curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/gliderlabs-sigil_${SIGIL_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${SIGIL_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/noble/gliderlabs-sigil_${SIGIL_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${SIGIL_PACKAGE_NAME}" fi PROCFILE_VERSION=$(jq -r --arg name procfile-util '.dependencies[] | select(.name == $name) | .version' contrib/dependencies.json) PROCFILE_UTIL_PACKAGE_NAME="procfile-util_${PROCFILE_VERSION}_amd64.deb" if [[ ! -f "$ROOT_DIR/build/${PROCFILE_UTIL_PACKAGE_NAME}" ]]; then - curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/procfile-util_${PROCFILE_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${PROCFILE_UTIL_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/noble/procfile-util_${PROCFILE_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${PROCFILE_UTIL_PACKAGE_NAME}" fi sudo apt-get update -qq From deb4891b2b5acbbad0846b8455f3443f76ddb72a Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 20:50:36 -0400 Subject: [PATCH 53/79] fix: reference noble apt repository and not focal --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0deffeb54..fa6bbc546 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,7 +29,7 @@ RUN mkdir -p /etc/apt/keyrings \ && echo "dokku dokku/skip_key_file boolean $DOKKU_SKIP_KEY_FILE" | debconf-set-selections \ && echo "dokku dokku/vhost_enable boolean $DOKKU_VHOST_ENABLE" | debconf-set-selections \ && curl -sSL https://packagecloud.io/dokku/dokku/gpgkey | apt-key add - \ - && echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ focal main" | tee /etc/apt/sources.list.d/dokku.list \ + && echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ noble main" | tee /etc/apt/sources.list.d/dokku.list \ && mkdir -p /etc/nginx/ \ && cp /tmp/dhparam.pem /etc/nginx/dhparam.pem \ && apt-get update \ From cc75b96e207202320b9ceea0a8323c63ebed3591 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 21:10:32 -0400 Subject: [PATCH 54/79] docs: fix link to docs site Closes #7124 --- docs/getting-started/where-to-get-help.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started/where-to-get-help.md b/docs/getting-started/where-to-get-help.md index 65cf3e151..5edd1c372 100644 --- a/docs/getting-started/where-to-get-help.md +++ b/docs/getting-started/where-to-get-help.md @@ -4,7 +4,7 @@ If you’re stuck, there are a number of places you can get help: ## The Official Dokku Website -- [https://dokku.com/docs/](/docs/) +- [https://dokku.com/docs/getting-started/installation/](/docs/getting-started/installation/) The Official Dokku website is always a great place to visit. It features links to oft-used developer tools, community plugins, and guides on using Dokku. From 4958768ba7812ba10a49d594be49f1dbb75f1542 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 20:02:00 -0400 Subject: [PATCH 55/79] feat: upgrade builder docker image to Ubuntu Noble --- contrib/build-base.Dockerfile | 4 +--- contrib/build-dokku.Dockerfile | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/contrib/build-base.Dockerfile b/contrib/build-base.Dockerfile index 2c6ff629f..1b3cd3535 100644 --- a/contrib/build-base.Dockerfile +++ b/contrib/build-base.Dockerfile @@ -1,8 +1,6 @@ -FROM ubuntu:20.04 +FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update -qq && apt-get -qq -y --no-install-recommends install ca-certificates curl gcc git jq build-essential wget ruby-dev lintian python3 rpm help2man man-db sudo -RUN curl -sL -o /usr/local/share/ca-certificates/GlobalSignRootCA_R3.crt https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem -RUN update-ca-certificates RUN command -v fpm || gem install fpm diff --git a/contrib/build-dokku.Dockerfile b/contrib/build-dokku.Dockerfile index 04342fc45..4c596958e 100644 --- a/contrib/build-dokku.Dockerfile +++ b/contrib/build-dokku.Dockerfile @@ -1,4 +1,4 @@ -FROM dokku/build-base:0.1.2 AS builder +FROM dokku/build-base:0.2.0 AS builder ENV DEBIAN_FRONTEND=noninteractive From 087f0e35a0c5a1277b6161103d796e2c53e7314d Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 23:04:39 -0400 Subject: [PATCH 56/79] fix: ensure dependencies for sshcommand are available for the build process --- contrib/build-base.Dockerfile | 20 +++++++++++++++++++- contrib/build-dokku.Dockerfile | 2 +- deb.mk | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/contrib/build-base.Dockerfile b/contrib/build-base.Dockerfile index 1b3cd3535..17259793f 100644 --- a/contrib/build-base.Dockerfile +++ b/contrib/build-base.Dockerfile @@ -2,5 +2,23 @@ FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get update -qq && apt-get -qq -y --no-install-recommends install ca-certificates curl gcc git jq build-essential wget ruby-dev lintian python3 rpm help2man man-db sudo +RUN apt-get update -qq && apt-get -qq -y --no-install-recommends install \ + adduser \ + build-essential \ + ca-certificates \ + coreutils \ + curl \ + gcc \ + git \ + help2man \ + jq \ + libc-bin \ + lintian \ + man-db \ + openssh-client \ + python3 \ + rpm \ + ruby-dev \ + sudo \ + wget RUN command -v fpm || gem install fpm diff --git a/contrib/build-dokku.Dockerfile b/contrib/build-dokku.Dockerfile index 4c596958e..0bb514c75 100644 --- a/contrib/build-dokku.Dockerfile +++ b/contrib/build-dokku.Dockerfile @@ -1,4 +1,4 @@ -FROM dokku/build-base:0.2.0 AS builder +FROM dokku/build-base:0.2.1 AS builder ENV DEBIAN_FRONTEND=noninteractive diff --git a/deb.mk b/deb.mk index 546a98c3f..528c0177e 100644 --- a/deb.mk +++ b/deb.mk @@ -27,7 +27,7 @@ deb-all: deb-setup deb-dokku deb-setup: @echo "-> Updating deb repository and installing build requirements" @sudo apt-get update -qq >/dev/null - @sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get -qq -y --no-install-recommends install gcc git build-essential wget ruby-dev ruby1.9.1 lintian >/dev/null 2>&1 + @sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get -qq -y --no-install-recommends install gcc git build-essential wget ruby-dev lintian >/dev/null 2>&1 @command -v fpm >/dev/null || sudo gem install fpm --no-ri --no-rdoc @ssh -o StrictHostKeyChecking=no git@github.com || true From 880f32f4e2b7297ca73e3db31487132bccf9e229 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 26 Aug 2024 04:19:26 -0400 Subject: [PATCH 57/79] feat: upgrade cnb builder to heroku/builder:24 --- docs/deployment/builders/cloud-native-buildpacks.md | 4 ++-- dokku | 2 +- tests/unit/builder-pack.bats | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/deployment/builders/cloud-native-buildpacks.md b/docs/deployment/builders/cloud-native-buildpacks.md index 9381d548e..f39df23f1 100644 --- a/docs/deployment/builders/cloud-native-buildpacks.md +++ b/docs/deployment/builders/cloud-native-buildpacks.md @@ -147,7 +147,7 @@ project2.toml > [!IMPORTANT] > New as of 0.23.0 -The default stack builder in use by CNB buildpacks in Dokku is based on `heroku/builder:22`. Users may desire to switch the stack builder to a custom version, either to update the operating system or to customize packages included with the stack builder. This can be performed via the `buildpacks:set-property` command. +The default stack builder in use by CNB buildpacks in Dokku is based on `heroku/builder:24`. Users may desire to switch the stack builder to a custom version, either to update the operating system or to customize packages included with the stack builder. This can be performed via the `buildpacks:set-property` command. ```shell dokku buildpacks:set-property node-js-app stack paketobuildpacks/build:base-cnb @@ -161,7 +161,7 @@ dokku buildpacks:set-property node-js-app stack A change in the stack builder value will execute the `post-stack-set` trigger. -Finally, stack builders can be set or unset globally as a fallback. This will take precedence over a globally set `DOKKU_CNB_BUILDER` environment variable (`heroku/builder:22` by default). +Finally, stack builders can be set or unset globally as a fallback. This will take precedence over a globally set `DOKKU_CNB_BUILDER` environment variable (`heroku/builder:24` by default). ```shell # set globally diff --git a/dokku b/dokku index 88c91825b..cd8a381a4 100755 --- a/dokku +++ b/dokku @@ -40,7 +40,7 @@ DOKKU_DISTRO=$( export DOCKER_BIN=${DOCKER_BIN:="docker"} export DOKKU_IMAGE=${DOKKU_IMAGE:="gliderlabs/herokuish:latest-24"} -export DOKKU_CNB_BUILDER=${DOKKU_CNB_BUILDER:="heroku/builder:22"} +export DOKKU_CNB_BUILDER=${DOKKU_CNB_BUILDER:="heroku/builder:24"} export DOKKU_LIB_ROOT=${DOKKU_LIB_PATH:="/var/lib/dokku"} export PLUGIN_PATH=${PLUGIN_PATH:="$DOKKU_LIB_ROOT/plugins"} diff --git a/tests/unit/builder-pack.bats b/tests/unit/builder-pack.bats index 51a20c2e8..622a6165b 100644 --- a/tests/unit/builder-pack.bats +++ b/tests/unit/builder-pack.bats @@ -25,7 +25,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "dokku buildpacks:set-property $TEST_APP stack heroku/builder:22" + run /bin/bash -c "dokku buildpacks:set-property $TEST_APP stack heroku/builder:24" echo "output: $output" echo "status: $status" assert_success From 71b28721f7d61760330cd0174e4904c9723c6c93 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 01:02:14 -0400 Subject: [PATCH 58/79] fix: correct issues with python3 no longer being available by default --- tests/apps/python/app-cnb.json | 21 +++++++++++++++++++++ tests/apps/python/project2.toml | 2 ++ tests/apps/python/release.py | 3 ++- tests/unit/builder-pack.bats | 5 +++-- 4 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 tests/apps/python/app-cnb.json diff --git a/tests/apps/python/app-cnb.json b/tests/apps/python/app-cnb.json new file mode 100644 index 000000000..85f5fe7f0 --- /dev/null +++ b/tests/apps/python/app-cnb.json @@ -0,0 +1,21 @@ +{ + "healthchecks": { + "web": [ + { + "attempts": 2, + "content": "python/http.server", + "name": "check-1", + "path": "/", + "timeout": 5, + "type": "startup", + "wait": 2 + } + ] + }, + "scripts": { + "dokku": { + "postdeploy": "touch /workspace/postdeploy.test", + "predeploy": "touch /workspace/predeploy.test" + } + } +} \ No newline at end of file diff --git a/tests/apps/python/project2.toml b/tests/apps/python/project2.toml index 6fc93db10..67df953e6 100644 --- a/tests/apps/python/project2.toml +++ b/tests/apps/python/project2.toml @@ -9,6 +9,8 @@ uri = "./cnb/1" [[build.buildpacks]] uri = "./cnb/1" +[[build.buildpacks]] +uri = "gcr.io/paketo-buildpacks/python" [[order.group]] uri = "gcr.io/paketo-buildpacks/procfile" diff --git a/tests/apps/python/release.py b/tests/apps/python/release.py index 117710e9f..741d9edb7 100644 --- a/tests/apps/python/release.py +++ b/tests/apps/python/release.py @@ -5,7 +5,8 @@ import os def main(): print("GLOBAL_SECRET: {0}".format(os.getenv('GLOBAL_SECRET'))) print("SECRET_KEY: {0}".format(os.getenv('SECRET_KEY'))) - with open("/app/.env", "r") as f: + app_dir = os.getcwd() + with open(f"{app_dir}/.env", "r") as f: for line in f.readlines(): if "DOTENV_KEY" in line: print(line) diff --git a/tests/unit/builder-pack.bats b/tests/unit/builder-pack.bats index 622a6165b..551db0901 100644 --- a/tests/unit/builder-pack.bats +++ b/tests/unit/builder-pack.bats @@ -30,7 +30,7 @@ teardown() { echo "status: $status" assert_success - run deploy_app python dokku@$DOKKU_DOMAIN:$TEST_APP inject_requirements_txt + run deploy_app python dokku@$DOKKU_DOMAIN:$TEST_APP initialize_for_cnb echo "output: $output" echo "status: $status" assert_success @@ -81,9 +81,10 @@ teardown() { assert_success } -inject_requirements_txt() { +initialize_for_cnb() { local APP="$1" local APP_REPO_DIR="$2" [[ -z "$APP" ]] && local APP="$TEST_APP" echo "flask" >>"$APP_REPO_DIR/requirements.txt" + mv "$APP_REPO_DIR/app-cnb.json" "$APP_REPO_DIR/app.json" } From c0c66e7d8853dc99b4c3553f820ebf2ce37eb2ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 14:03:59 +0000 Subject: [PATCH 59/79] chore(deps): bump traefik in /plugins/traefik-vhosts Bumps traefik from 2.11.2 to 3.1.2. --- updated-dependencies: - dependency-name: traefik dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- plugins/traefik-vhosts/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/traefik-vhosts/Dockerfile b/plugins/traefik-vhosts/Dockerfile index 3111b854b..4567a7b11 100644 --- a/plugins/traefik-vhosts/Dockerfile +++ b/plugins/traefik-vhosts/Dockerfile @@ -1 +1 @@ -FROM traefik:2.11.2 +FROM traefik:3.1.2 From 02cfe5d65369f5810deaa41dc6f3e5b1fcd04e8b Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 01:37:39 -0400 Subject: [PATCH 60/79] fix: set multiple hosts via logical operators to conform to new v3 syntax --- .../traefik-vhosts/docker-args-process-deploy | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/plugins/traefik-vhosts/docker-args-process-deploy b/plugins/traefik-vhosts/docker-args-process-deploy index e45b5b18e..1d69e46bc 100755 --- a/plugins/traefik-vhosts/docker-args-process-deploy +++ b/plugins/traefik-vhosts/docker-args-process-deploy @@ -83,8 +83,18 @@ trigger-traefik-vhosts-docker-args-process-deploy() { if [[ -n "$is_app_listening" ]]; then app_domains="$(plugn trigger domains-list "$APP")" if [[ -n "$app_domains" ]]; then - traefik_domains="$(echo "$app_domains" | xargs)" - traefik_domains="${traefik_domains// /\\\`,\\\`}" + # get length of domains + if [[ "$(echo "$traefik_domains" | wc -w)" -eq 1 ]]; then + traefik_domains="Host(\\\`$traefik_domains\\\`)" + else + for domain in $(echo "$app_domains" | xargs); do + if [[ -z "$traefik_domains" ]]; then + traefik_domains="Host(\\\`$domain\\\`)" + continue + fi + traefik_domains="$traefik_domains || Host(\\\`$domain\\\`)" + done + fi fi output="--label traefik.enable=true" @@ -99,7 +109,7 @@ trigger-traefik-vhosts-docker-args-process-deploy() { output="$output --label traefik.http.routers.$APP-$PROC_TYPE-http.entrypoints=$(fn-traefik-http-entry-point)" output="$output --label traefik.http.routers.$APP-$PROC_TYPE-http.service=$APP-$PROC_TYPE-http" if [[ -n "$traefik_domains" ]]; then - output="$output --label \"traefik.http.routers.$APP-$PROC_TYPE-http.rule=Host(\\\`$traefik_domains\\\`)\"" + output="$output --label \"traefik.http.routers.$APP-$PROC_TYPE-http.rule=$traefik_domains\"" fi fi From 830f2f2b01dd9d84cf4638dd4b4716e28368b27f Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 01:38:44 -0400 Subject: [PATCH 61/79] chore: remove references to version in compose files This is now deprecated and causes a warning to be raised. --- docs/getting-started/install/docker.md | 2 -- plugins/caddy-vhosts/templates/compose.yml.sigil | 2 -- plugins/haproxy-vhosts/templates/compose.yml.sigil | 2 -- plugins/logs/templates/compose.yml.tmpl | 2 -- plugins/openresty-vhosts/templates/compose.yml.sigil | 2 -- plugins/traefik-vhosts/templates/compose.yml.sigil | 2 -- 6 files changed, 12 deletions(-) diff --git a/docs/getting-started/install/docker.md b/docs/getting-started/install/docker.md index 720b77ef5..84c1086ab 100644 --- a/docs/getting-started/install/docker.md +++ b/docs/getting-started/install/docker.md @@ -25,8 +25,6 @@ docker container run -d \ Alternatively, you can use `docker-compose.yml`: ```yaml -version: "3.8" - services: dokku: image: dokku/dokku:0.34.9 diff --git a/plugins/caddy-vhosts/templates/compose.yml.sigil b/plugins/caddy-vhosts/templates/compose.yml.sigil index a96f18df2..a2f04ef35 100644 --- a/plugins/caddy-vhosts/templates/compose.yml.sigil +++ b/plugins/caddy-vhosts/templates/compose.yml.sigil @@ -1,6 +1,4 @@ --- -version: "3.8" - services: caddy: image: "{{ $.CADDY_IMAGE }}" diff --git a/plugins/haproxy-vhosts/templates/compose.yml.sigil b/plugins/haproxy-vhosts/templates/compose.yml.sigil index 9097a548b..be884d5be 100644 --- a/plugins/haproxy-vhosts/templates/compose.yml.sigil +++ b/plugins/haproxy-vhosts/templates/compose.yml.sigil @@ -1,6 +1,4 @@ --- -version: "3.8" - services: haproxy: image: "{{ $.HAPROXY_IMAGE }}" diff --git a/plugins/logs/templates/compose.yml.tmpl b/plugins/logs/templates/compose.yml.tmpl index b8ec72469..70f033667 100644 --- a/plugins/logs/templates/compose.yml.tmpl +++ b/plugins/logs/templates/compose.yml.tmpl @@ -1,6 +1,4 @@ --- -version: "3.8" - services: vector: image: "{{ $.VectorImage }}" diff --git a/plugins/openresty-vhosts/templates/compose.yml.sigil b/plugins/openresty-vhosts/templates/compose.yml.sigil index d6a13ffe9..f5d9f4501 100644 --- a/plugins/openresty-vhosts/templates/compose.yml.sigil +++ b/plugins/openresty-vhosts/templates/compose.yml.sigil @@ -1,6 +1,4 @@ --- -version: "3.8" - services: openresty: image: "{{ $.OPENRESTY_IMAGE }}" diff --git a/plugins/traefik-vhosts/templates/compose.yml.sigil b/plugins/traefik-vhosts/templates/compose.yml.sigil index b26b2e477..6a3e07f57 100644 --- a/plugins/traefik-vhosts/templates/compose.yml.sigil +++ b/plugins/traefik-vhosts/templates/compose.yml.sigil @@ -1,6 +1,4 @@ --- -version: "3.8" - services: traefik: image: "{{ $.TRAEFIK_IMAGE }}" From 13fb40defd3cffb0f38a9930fe24bc37926142f1 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 01:39:41 -0400 Subject: [PATCH 62/79] docs: reference actual properties for enabling the traefik api and dashboard --- docs/networking/proxies/traefik.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/networking/proxies/traefik.md b/docs/networking/proxies/traefik.md index 042b5ed6c..3d8fe76f5 100644 --- a/docs/networking/proxies/traefik.md +++ b/docs/networking/proxies/traefik.md @@ -160,10 +160,10 @@ Traefik exposes an API and Dashboard, which Dokku disables by default for securi > [!WARNING] > Users enabling the dashboard should also enable api basic auth. -By default, the api is disabled. To enable, set the `api` property with the `--global` flag: +By default, the api is disabled. To enable, set the `api-enabled` property with the `--global` flag: ```shell -dokku traefik:set --global api true +dokku traefik:set --global api-enabled true ``` After enabling, the Traefik container will need to be restarted. @@ -173,10 +173,10 @@ After enabling, the Traefik container will need to be restarted. > [!WARNING] > Users enabling the dashboard should also enable api basic auth. -By default, the dashboard is disabled. To enable, set the `dashboard` property with the `--global` flag: +By default, the dashboard is disabled. To enable, set the `dashboard-enabled` property with the `--global` flag: ```shell -dokku traefik:set --global dashboard true +dokku traefik:set --global dashboard-enabled true ``` After enabling, the Traefik container will need to be restarted. From 3649168f158767fe8a61b21ba2a3dd4db1487e92 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 20:16:19 -0400 Subject: [PATCH 63/79] feat: error out when the Dockerfile is missing during builder-dockerfile execution Users may inadvertently set the builder to 'dockerfile' and have build errors when there is no Dockerfile. This change makes it clear that the dockerfile _must_ exist in order for the build to succeed. Closes #7181 --- plugins/builder-dockerfile/builder-build | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/builder-dockerfile/builder-build b/plugins/builder-dockerfile/builder-build index 6b72cb12f..08a0d5d10 100755 --- a/plugins/builder-dockerfile/builder-build +++ b/plugins/builder-dockerfile/builder-build @@ -23,6 +23,11 @@ trigger-builder-dockerfile-builder-build() { pushd "$SOURCECODE_WORK_DIR" &>/dev/null + if [[ ! -f "$SOURCECODE_WORK_DIR/Dockerfile" ]]; then + dokku_log_fail "No Dockerfile found in source code directory" + return 1 + fi + if fn-plugn-trigger-exists "pre-build-dockerfile"; then dokku_log_warn "Deprecated: please upgrade plugin to use 'pre-build' plugin trigger instead of pre-build-dockerfile" plugn trigger pre-build-dockerfile "$APP" From 097fb4d81926cab69f1455732e77cebfa43d742d Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 21:02:20 -0400 Subject: [PATCH 64/79] feat: clear out docker builder cache once a day There have been a number of tickets in the past - most recently #7061 - covering the fact that Dokku doesn't clean up disk utilization. The underlying issue is that Docker uses build cache that cannot be cleaned up in a targeted way - and usually doesn't even respect the builder gc settings in a way that makes sense. In fact, the computed disk space does not line up with actual disk utilization, causing it to be a mystery to anyone investigating the underlying problem. This change introduces a cron-based mechanism that cleans up disk once a day. Cleaning up more often would potentially cause issues during a build if for some reason the prune and an app deploy happened at the same time - its not clear if there is a lock on build cache usage - so cleaning up after hours once a day is a decent tradeoff. In the future, this setting may be modifiable, but it works well for now. Closes #7061 --- docker/etc/cron.d/docker-builder-prune | 4 ++ plugins/builder/install-builder-prune | 51 ++++++++++++++++++++++++++ plugins/builder/triggers.go | 6 ++- 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 docker/etc/cron.d/docker-builder-prune create mode 100755 plugins/builder/install-builder-prune diff --git a/docker/etc/cron.d/docker-builder-prune b/docker/etc/cron.d/docker-builder-prune new file mode 100644 index 000000000..dcdafe459 --- /dev/null +++ b/docker/etc/cron.d/docker-builder-prune @@ -0,0 +1,4 @@ +PATH=/usr/local/bin:/usr/bin:/bin +SHELL=/bin/bash + +5 4 * * * root /usr/local/bin/docker builder prune >>/var/log/dokku/builder-prune.log 2>&1 diff --git a/plugins/builder/install-builder-prune b/plugins/builder/install-builder-prune new file mode 100755 index 000000000..c61e945c4 --- /dev/null +++ b/plugins/builder/install-builder-prune @@ -0,0 +1,51 @@ +#!/usr/bin/env bash +set -eo pipefail +[[ $DOKKU_TRACE ]] && set -x + +trigger-builder-install-prune() { + declare desc="builder install plugin trigger" + declare trigger="install" + + if [[ $(systemctl 2>/dev/null) =~ -\.mount ]]; then + cat </etc/systemd/system/docker-builder-prune.service +[Unit] +Description=Docker builder prune service +Requires=docker.service +After=docker.service + +[Service] +Type=oneshot +User=$DOKKU_SYSTEM_USER +ExecStart=$DOCKER_BIN builder prune + +[Install] +WantedBy=docker.service +EOF + + cat </etc/systemd/system/docker-builder-prune.timer +[Unit] +Description=Run docker-builder-prune.service every day at 4:05am + +[Timer] +OnCalendar=Mon..Sun 04:05 +Persistent=true + +[Install] +WantedBy=timers.target +EOF + if command -v systemctl &>/dev/null; then + systemctl --quiet reenable docker-builder-prune + systemctl --quiet enable docker-builder-prune.timer + systemctl --quiet start docker-builder-prune.timer + fi + else + cat </etc/cron.d/docker-builder-prune +PATH=/usr/local/bin:/usr/bin:/bin +SHELL=/bin/bash + +5 4 * * * $DOKKU_SYSTEM_USER $DOCKER_BIN builder prune >>/var/log/dokku/builder-prune.log 2>&1 +EOF + fi +} + +trigger-builder-install-prune "$@" diff --git a/plugins/builder/triggers.go b/plugins/builder/triggers.go index 37f2821c5..50e380994 100644 --- a/plugins/builder/triggers.go +++ b/plugins/builder/triggers.go @@ -99,7 +99,11 @@ func TriggerInstall() error { return fmt.Errorf("Unable to install the builder plugin: %s", err.Error()) } - return nil + _, err := common.CallPlugnTrigger(common.PlugnTriggerInput{ + Trigger: "install-builder-prune", + }) + + return err } // TriggerPostAppCloneSetup creates new builder files From dc84d780c85ca708d2ab9218e243aad8e25bc1ea Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 23:26:11 -0400 Subject: [PATCH 65/79] feat: fix vagrant running on arm64 machines The TARGETARCH must be set in order to download the correct binaries when running on arm64 machines. --- Vagrantfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Vagrantfile b/Vagrantfile index 1dc933cc7..14287d1cb 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -9,7 +9,7 @@ DOKKU_IP = ENV["DOKKU_IP"] || "10.0.0.2" PREBUILT_STACK_URL = File.exist?("#{File.dirname(__FILE__)}/stack.tgz") ? 'file:///root/dokku/stack.tgz' : nil PUBLIC_KEY_PATH = "#{Dir.home}/.ssh/id_rsa.pub" -make_cmd = "DEBIAN_FRONTEND=noninteractive make -e install" +make_cmd = "TARGETARCH=$(dpkg --print-architecture) DEBIAN_FRONTEND=noninteractive make -e install" if PREBUILT_STACK_URL make_cmd = "PREBUILT_STACK_URL='#{PREBUILT_STACK_URL}' #{make_cmd}" end From 93452a0e80bf02449ea56e4b63f1061e1db1da9e Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 21 Sep 2024 19:45:47 -0400 Subject: [PATCH 66/79] tests: run CI on Ubuntu Noble --- .github/workflows/ci.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 64e5c1dcf..91d5a7b01 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ env: jobs: check-commit: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 outputs: skip: ${{ steps.check-commit.outputs.skip }} @@ -43,7 +43,7 @@ jobs: build: name: build - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: check-commit if: ${{ needs.check-commit.outputs.skip != 'true' }} outputs: @@ -83,7 +83,7 @@ jobs: build-image-amd64: name: build-image.linux/amd64 needs: build - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 20 steps: @@ -97,7 +97,7 @@ jobs: build-image-arm64: name: build-image.linux/arm64 needs: build - runs-on: buildjet-4vcpu-ubuntu-2204-arm + runs-on: buildjet-4vcpu-ubuntu-2404-arm timeout-minutes: 20 steps: @@ -111,7 +111,7 @@ jobs: unit-tests: name: unit.${{ matrix.index }} needs: build - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: ${{fromJson(needs.build.outputs.matrix)}} @@ -151,7 +151,7 @@ jobs: docker-deploy-tests: name: docker needs: build - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false @@ -181,7 +181,7 @@ jobs: go-tests: name: go.${{ matrix.index }} needs: build - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: @@ -222,7 +222,7 @@ jobs: publish-test-results: name: publish-test-results needs: unit-tests - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 permissions: checks: write # the build-and-test job might be skipped, we don't need to run this job then From a72cb696f63ad73e01bb3ccd1fe72d1660a799b5 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 00:17:14 -0400 Subject: [PATCH 67/79] debug: show output from ssh attempt --- tests.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests.mk b/tests.mk index bee1c5ad1..cc005cd6a 100644 --- a/tests.mk +++ b/tests.mk @@ -116,9 +116,9 @@ endif prime-ssh-known-hosts: @echo "-----> Intitial SSH connection to populate known_hosts..." @echo "=====> SSH $(DOKKU_DOMAIN)" - ssh -o StrictHostKeyChecking=no dokku@$(DOKKU_DOMAIN) help >/dev/null + ssh -o StrictHostKeyChecking=no dokku@$(DOKKU_DOMAIN) help @echo "=====> SSH 127.0.0.1" - ssh -o StrictHostKeyChecking=no dokku@127.0.0.1 help >/dev/null + ssh -o StrictHostKeyChecking=no dokku@127.0.0.1 help lint-setup: @mkdir -p test-results/shellcheck tmp/shellcheck From f72202c40612c599ab451d22a852ace38cd3ac18 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 02:59:49 -0400 Subject: [PATCH 68/79] debug: drop trace mode to make output slightly more readable --- .github/commands/ci-setup | 1 - tests/ci/setup.sh | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/commands/ci-setup b/.github/commands/ci-setup index 4c33bd55e..a6e0cd77c 100755 --- a/.github/commands/ci-setup +++ b/.github/commands/ci-setup @@ -1,6 +1,5 @@ #!/usr/bin/env bash set -eo pipefail -set -x DOKKU_DOMAIN=${DOKKU_DOMAIN:="dokku.me"} diff --git a/tests/ci/setup.sh b/tests/ci/setup.sh index 6a7fd1b34..1cb1d4e80 100755 --- a/tests/ci/setup.sh +++ b/tests/ci/setup.sh @@ -111,7 +111,7 @@ EOF sleep 5 echo "-----> Start install ${ROOT_DIR}/build/package/dokku-${architecture}.deb via dpkg" - sudo TRACE=1 dpkg -i "${ROOT_DIR}/build/package/dokku-${architecture}.deb" + sudo dpkg -i "${ROOT_DIR}/build/package/dokku-${architecture}.deb" echo "-----> End install ${ROOT_DIR}/build/package/dokku-${architecture}.deb via dpkg" } From 46c1e80c198ce40c4c933451161041806e3eb870 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 03:00:39 -0400 Subject: [PATCH 69/79] debug: check on ssh status when setting up ci --- tests.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests.mk b/tests.mk index cc005cd6a..a260ddd56 100644 --- a/tests.mk +++ b/tests.mk @@ -86,7 +86,10 @@ ifneq ($(wildcard /etc/ssh/sshd_config),) ifeq ($(shell grep 22333 /etc/ssh/sshd_config),) sed --in-place "s:^Port 22:Port 22 \\nPort 22333:g" /etc/ssh/sshd_config endif + cat /etc/ssh/sshd_config service ssh restart + service ssh status + journalctl -u ssh -f -n 1000 endif @echo "-----> Installing SSH public key..." From 5bb4de58d711a696c63806947c0fc34692007a4a Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 20:04:32 -0400 Subject: [PATCH 70/79] fix: update ssh.socket to listen on port 22333 Newer versions of sshd respect the systemd settings for listening on ports vs just the sshd_config. --- tests.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests.mk b/tests.mk index a260ddd56..2bb3aebcc 100644 --- a/tests.mk +++ b/tests.mk @@ -86,7 +86,12 @@ ifneq ($(wildcard /etc/ssh/sshd_config),) ifeq ($(shell grep 22333 /etc/ssh/sshd_config),) sed --in-place "s:^Port 22:Port 22 \\nPort 22333:g" /etc/ssh/sshd_config endif +ifeq ($(shell grep 22333 /usr/lib/systemd/system/ssh.socket),) + sed --in-place "s:^ListenStream=22:ListenStream=22 \\nListenStream=22333:g" /usr/lib/systemd/system/ssh.socket +endif + cat /usr/lib/systemd/system/ssh.socket cat /etc/ssh/sshd_config + systemctl daemon-reload service ssh restart service ssh status journalctl -u ssh -f -n 1000 From 08f68c663483eb0cad663f891ee9fd725a57134e Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 21:07:26 -0400 Subject: [PATCH 71/79] fix: do not wait forever and use systemctl for interacting with services --- tests.mk | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests.mk b/tests.mk index 2bb3aebcc..f70e615b3 100644 --- a/tests.mk +++ b/tests.mk @@ -92,9 +92,11 @@ endif cat /usr/lib/systemd/system/ssh.socket cat /etc/ssh/sshd_config systemctl daemon-reload - service ssh restart - service ssh status - journalctl -u ssh -f -n 1000 + systemctl reload ssh + systemctl restart ssh + systemctl status ssh + sleep 2 + journalctl -u ssh -n 1000 endif @echo "-----> Installing SSH public key..." From 2c4eb67104f298b43889b2d279522ad8f9cde558 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 21:24:59 -0400 Subject: [PATCH 72/79] fix: go back to not using systemd --- tests.mk | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests.mk b/tests.mk index f70e615b3..7eca12806 100644 --- a/tests.mk +++ b/tests.mk @@ -92,9 +92,10 @@ endif cat /usr/lib/systemd/system/ssh.socket cat /etc/ssh/sshd_config systemctl daemon-reload - systemctl reload ssh - systemctl restart ssh - systemctl status ssh + service ssh reload + service ssh restart + service ssh status + cat /etc/init/ssh || true sleep 2 journalctl -u ssh -n 1000 endif From 6a22ae05d23e60c07ae72d912b2fa7dd3387dc59 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 21:25:49 -0400 Subject: [PATCH 73/79] debug: show active systemd services --- tests.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/tests.mk b/tests.mk index 7eca12806..910f4f728 100644 --- a/tests.mk +++ b/tests.mk @@ -92,6 +92,7 @@ endif cat /usr/lib/systemd/system/ssh.socket cat /etc/ssh/sshd_config systemctl daemon-reload + systemctl list-unit-files | sort service ssh reload service ssh restart service ssh status From 47c1b3b2955c1e40ad32c4e1b94e5df20d7170ab Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 21:58:14 -0400 Subject: [PATCH 74/79] fix: restart ssh socket https://discourse.ubuntu.com/t/sshd-now-uses-socket-based-activation-ubuntu-22-10-and-later/30189 --- tests.mk | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests.mk b/tests.mk index 910f4f728..1f34dd801 100644 --- a/tests.mk +++ b/tests.mk @@ -93,10 +93,8 @@ endif cat /etc/ssh/sshd_config systemctl daemon-reload systemctl list-unit-files | sort - service ssh reload - service ssh restart + systemctl restart ssh.socket service ssh status - cat /etc/init/ssh || true sleep 2 journalctl -u ssh -n 1000 endif From 8f18c3d58155bef59668cb386dbb24ce1dfa68e6 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 22:28:34 -0400 Subject: [PATCH 75/79] debug: update logging --- tests.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests.mk b/tests.mk index 1f34dd801..c1e414dbe 100644 --- a/tests.mk +++ b/tests.mk @@ -93,10 +93,11 @@ endif cat /etc/ssh/sshd_config systemctl daemon-reload systemctl list-unit-files | sort + journalctl -u ssh -n 1000 systemctl restart ssh.socket + journalctl -u ssh -n 1000 service ssh status sleep 2 - journalctl -u ssh -n 1000 endif @echo "-----> Installing SSH public key..." From 4c634b6fd0ff9c75eb62d84d91104e82af7200fa Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 22 Sep 2024 23:38:28 -0400 Subject: [PATCH 76/79] debug: why ssh isnt running --- tests.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests.mk b/tests.mk index c1e414dbe..14329d4f9 100644 --- a/tests.mk +++ b/tests.mk @@ -91,13 +91,15 @@ ifeq ($(shell grep 22333 /usr/lib/systemd/system/ssh.socket),) endif cat /usr/lib/systemd/system/ssh.socket cat /etc/ssh/sshd_config + service ssh status systemctl daemon-reload systemctl list-unit-files | sort + service ssh status journalctl -u ssh -n 1000 systemctl restart ssh.socket + sleep 2 journalctl -u ssh -n 1000 service ssh status - sleep 2 endif @echo "-----> Installing SSH public key..." From b996114209fd610b3af9b37334ae5e28c27a535f Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 23 Sep 2024 00:00:56 -0400 Subject: [PATCH 77/79] chore: remove debugging --- tests.mk | 9 --------- 1 file changed, 9 deletions(-) diff --git a/tests.mk b/tests.mk index 14329d4f9..df4fdeb81 100644 --- a/tests.mk +++ b/tests.mk @@ -89,17 +89,8 @@ endif ifeq ($(shell grep 22333 /usr/lib/systemd/system/ssh.socket),) sed --in-place "s:^ListenStream=22:ListenStream=22 \\nListenStream=22333:g" /usr/lib/systemd/system/ssh.socket endif - cat /usr/lib/systemd/system/ssh.socket - cat /etc/ssh/sshd_config - service ssh status systemctl daemon-reload - systemctl list-unit-files | sort - service ssh status - journalctl -u ssh -n 1000 systemctl restart ssh.socket - sleep 2 - journalctl -u ssh -n 1000 - service ssh status endif @echo "-----> Installing SSH public key..." From c25071f0b82079236dbc1c1b23323ebcf28d7e4a Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 23 Sep 2024 00:32:59 -0400 Subject: [PATCH 78/79] fix: ensure testing still works in docker container environments --- tests.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests.mk b/tests.mk index df4fdeb81..15df17400 100644 --- a/tests.mk +++ b/tests.mk @@ -89,8 +89,8 @@ endif ifeq ($(shell grep 22333 /usr/lib/systemd/system/ssh.socket),) sed --in-place "s:^ListenStream=22:ListenStream=22 \\nListenStream=22333:g" /usr/lib/systemd/system/ssh.socket endif - systemctl daemon-reload - systemctl restart ssh.socket + systemctl daemon-reload || true + systemctl restart ssh.socket || service ssh restart endif @echo "-----> Installing SSH public key..." From 4eb95861998d50d54c3ca844414fb60a6c955313 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 23 Sep 2024 00:55:27 -0400 Subject: [PATCH 79/79] docs: add a migration guide for Dokku 0.35 --- docs/appendices/0.35.0-migration-guide.md | 17 +++++++++++++++++ docs/getting-started/upgrading/index.md | 1 + 2 files changed, 18 insertions(+) create mode 100644 docs/appendices/0.35.0-migration-guide.md diff --git a/docs/appendices/0.35.0-migration-guide.md b/docs/appendices/0.35.0-migration-guide.md new file mode 100644 index 000000000..e12bbc383 --- /dev/null +++ b/docs/appendices/0.35.0-migration-guide.md @@ -0,0 +1,17 @@ +# 0.35.0 Migration Guide + +## Changes + +- The provided `dokku/dokku:latest` Docker image now runs Ubuntu 24.04 Noble. Users that install custom packages within their docker-based installations should be sure to check package compatibility with Ubuntu 24.04. +- The default image used for Cloud Native Buildpack builds is now `heroku/builder:24`, and is based on both the `heroku-24` stack as well as Ubuntu 24.04. Users that wish to stick with the old, `heroku-22`/Ubuntu 22.04 builder may specify `heroku/buildpacks:22` as their builder image. Please see the [cloud native buildpack deployment documentation](/docs/deployment/builders/cloud-native-buildpacks.md#customizing-the-buildpack-stack-builder) for more information on how to specify a custom buildpack stack builder. +- The default image used for Herokuish Buildpack builds is now `gliderlabs/herokuish:latest-24`, and is based on both the `heroku-24` stack as well as Ubuntu 24.04. Users that wish to stick with the old, `heroku-22`/Ubuntu 22.04 builder may specify `gliderlabs/herokuish:latest-22` as their builder image. Please see the [herokuish buildpack deployment documentation](/docs/deployment/builders/herokuish-buildpacks.md#customizing-the-buildpack-stack-builder) for more information on how to specify a custom buildpack stack builder. +- The `vector` image used by Dokku for enhanced logging support has been upgraded from 0.39.x to 0.41.x. To take advantage of the new image, execute the following commands: + ``` + dokku logs:vector-stop + dokku logs:vector-start + ``` +- The `openresty` image used by Dokku for proxying via openresty has been upgraded from 0.8.0 to 0.9.0. To take advantage of the new image, execute the following commands: + ``` + dokku openresty:stop + dokku openresty:start + ``` diff --git a/docs/getting-started/upgrading/index.md b/docs/getting-started/upgrading/index.md index a78534e7c..7effb6010 100644 --- a/docs/getting-started/upgrading/index.md +++ b/docs/getting-started/upgrading/index.md @@ -18,6 +18,7 @@ Docker releases updates periodically to their engine. We recommend reading their Before upgrading, check the migration guides to get comfortable with new features and prepare your deployment to be upgraded. +- [Upgrading to 0.35](/docs/appendices/0.35.0-migration-guide.md) - [Upgrading to 0.34](/docs/appendices/0.34.0-migration-guide.md) - [Upgrading to 0.33](/docs/appendices/0.33.0-migration-guide.md) - [Upgrading to 0.32](/docs/appendices/0.32.0-migration-guide.md)