diff --git a/README.md b/README.md index c6a45f20f61..5790fd003f6 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 ee6f7050e40..1cff7c2ff61 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]" +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" "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 0446ac1438c..12458bf20b2 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 f1cc52b3b97..2251fc28f9d 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 23c6740dcae..546a98c3fd1 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 38dc9bf13f3..64b3c4726ce 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 200f4e8ca68..19d9921d640 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 dd6998092c6..6223ef8ff70 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 666d57fbbbd..7692bd6b308 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 57c3c7ff5a2..ccef56880db 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 3a48702bd28..bafe9fb4318 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 385acf0c327..870551298b9 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 ```