Merge pull request #6853 from Reggino/master

Support Ubuntu 24.04 LTS
This commit is contained in:
Jose Diaz-Gonzalez
2024-08-26 04:14:01 -04:00
committed by GitHub
12 changed files with 22 additions and 22 deletions

View File

@@ -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: 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 - Debian 10+ x64
- Arch Linux x64 *(experimental)* - Arch Linux x64 *(experimental)*

View File

@@ -3,7 +3,7 @@ set -eo pipefail
[[ $TRACE ]] && set -x [[ $TRACE ]] && set -x
# A script to bootstrap dokku. # 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) # 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. # 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. # That's good because it prevents our output overlapping with wget's.
# It also means that we can't run a partially downloaded script. # 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() { log-fail() {
declare desc="log fail formatter" declare desc="log fail formatter"
@@ -160,7 +160,7 @@ install-dokku-from-deb-package() {
local NO_INSTALL_RECOMMENDS=${DOKKU_NO_INSTALL_RECOMMENDS:=""} local NO_INSTALL_RECOMMENDS=${DOKKU_NO_INSTALL_RECOMMENDS:=""}
local OS_ID 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" log-fail "Unsupported Linux distribution. Only the following versions are supported: $SUPPORTED_VERSIONS"
fi fi
@@ -181,16 +181,16 @@ install-dokku-from-deb-package() {
wget -nv -O - https://get.docker.com/ | sh wget -nv -O - https://get.docker.com/ | sh
fi 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 if ! in-array "$DOKKU_DISTRO" "debian" "ubuntu" "raspbian"; then
DOKKU_DISTRO="ubuntu" DOKKU_DISTRO="ubuntu"
OS_ID="jammy" OS_ID="noble"
fi fi
if [[ "$DOKKU_DISTRO" == "ubuntu" ]]; then if [[ "$DOKKU_DISTRO" == "ubuntu" ]]; then
OS_IDS=("focal" "jammy") OS_IDS=("focal" "jammy" "noble")
if ! in-array "$OS_ID" "${OS_IDS[@]}"; then if ! in-array "$OS_ID" "${OS_IDS[@]}"; then
OS_ID="jammy" OS_ID="noble"
fi fi
elif [[ "$DOKKU_DISTRO" == "debian" ]]; then elif [[ "$DOKKU_DISTRO" == "debian" ]]; then
OS_IDS=("stretch" "buster" "bullseye" "bookworm") OS_IDS=("stretch" "buster" "bullseye" "bookworm")

View File

@@ -15,7 +15,7 @@ def download_file(filename, url):
def upload_file(filename): def upload_file(filename):
versions = ["jammy"] versions = ["noble"]
cmd_template = "package_cloud push dokku/dokku/ubuntu/{0} {1}" cmd_template = "package_cloud push dokku/dokku/ubuntu/{0} {1}"
for version in versions: for version in versions:
cmd = cmd_template.format(version, filename) cmd = cmd_template.format(version, filename)
@@ -25,7 +25,7 @@ def upload_file(filename):
def main(): def main():
auth = HTTPBasicAuth(PACKAGECLOUD_TOKEN, "") auth = HTTPBasicAuth(PACKAGECLOUD_TOKEN, "")
base = requests.get( 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, auth=auth,
) )
data = base.json() data = base.json()

View File

@@ -144,7 +144,7 @@ fn-publish-package() {
fi fi
done done
elif [[ "$DIST" == "ubuntu" ]]; then elif [[ "$DIST" == "ubuntu" ]]; then
OS_IDS=("focal" "jammy") OS_IDS=("focal" "jammy" "noble")
for OS_ID in "${OS_IDS[@]}"; do for OS_ID in "${OS_IDS[@]}"; do
log-info "(release-dokku) pushing ${RELEASE_TYPE} to packagecloud.com/${REPOSITORY}/${DIST}" log-info "(release-dokku) pushing ${RELEASE_TYPE} to packagecloud.com/${REPOSITORY}/${DIST}"
package_cloud push "${REPOSITORY}/${DIST}/${OS_ID}" "$PACKAGE_NAME" package_cloud push "${REPOSITORY}/${DIST}/${OS_ID}" "$PACKAGE_NAME"

2
deb.mk
View File

@@ -16,7 +16,7 @@ install-from-deb:
@echo "--> Installing dokku" @echo "--> Installing dokku"
wget -qO- https://packagecloud.io/dokku/dokku/gpgkey | sudo tee /etc/apt/trusted.gpg.d/dokku.asc 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 apt-get update -qq >/dev/null
sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get -qq -y --no-install-recommends install dokku sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get -qq -y --no-install-recommends install dokku

View File

@@ -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: Once set, the Dockerfile usage would be as follows:
```Dockerfile ```Dockerfile
FROM ubuntu:20.04 FROM ubuntu:24.04
# set the argument default # set the argument default
ARG NODE_ENV=production ARG NODE_ENV=production
@@ -142,7 +142,7 @@ RUN echo $NODE_ENV
You may also set the argument as an environment variable You may also set the argument as an environment variable
```Dockerfile ```Dockerfile
FROM ubuntu:20.04 FROM ubuntu:24.04
# set the argument default # set the argument default
ARG NODE_ENV=production ARG NODE_ENV=production

View File

@@ -13,7 +13,7 @@ on:
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
steps: steps:
- name: Cloning repo - name: Cloning repo
uses: actions/checkout@v3 uses: actions/checkout@v3

View File

@@ -9,11 +9,11 @@ We maintain the Dokku test harness within the `tests` directory:
## Continuous Integration ## 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. 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 ## Local Test Execution

View File

@@ -6,7 +6,7 @@
1. Login to your [DigitalOcean](https://m.do.co/c/fe06b043a083) account. 1. Login to your [DigitalOcean](https://m.do.co/c/fe06b043a083) account.
2. Click **Create a Droplet**. 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. 4. Under **Choose a size**, select your machine spec.
5. Under **Choose a datacenter region**, select your region. 5. Under **Choose a datacenter region**, select your region.
6. Add an SSH Key. 6. Add an SSH Key.

View File

@@ -19,7 +19,7 @@ source openrc.sh # Set the environment variables for DreamHost Cloud
This allows OpenStack client to connect to DreamHost API endpoints. This allows OpenStack client to connect to DreamHost API endpoints.
The command below creates a new server instance named `my-dokku-instance` 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 `supersonic`), opening network port access to HTTP and SSH (the
`default` security group), and the name of the chosen SSH key. This `default` security group), and the name of the chosen SSH key. This
key will be automatically added to the new server in the key will be automatically added to the new server in the
@@ -28,7 +28,7 @@ be reused by Dokku.
```sh ```sh
openstack server create \ openstack server create \
--image Ubuntu-20.04 \ --image Ubuntu-24.04 \
--flavor gp1.supersonic \ --flavor gp1.supersonic \
--security-group default \ --security-group default \
--key-name $YOUR_SSH_KEYNAME \ --key-name $YOUR_SSH_KEYNAME \

View File

@@ -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: 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: - 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/) - [Debian 10+ x64](https://www.debian.org/distrib/)
- A server with one of the following architectures - A server with one of the following architectures
- AMD64 (alternatively known as `x86_64`), commonly used for Intel cloud servers - AMD64 (alternatively known as `x86_64`), commonly used for Intel cloud servers

View File

@@ -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: 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 EXPOSE 1234
CMD python -m SimpleHTTPServer 1234 CMD python -m SimpleHTTPServer 1234
``` ```