diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4d064050e..56cd3df05 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ on: jobs: build: name: build - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} strategy: @@ -49,7 +49,7 @@ jobs: unit-tests: name: unit.${{ matrix.index }} needs: build - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: ${{fromJson(needs.build.outputs.matrix)}} @@ -89,7 +89,7 @@ jobs: docker-deploy-tests: name: docker needs: build - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: fail-fast: false @@ -115,7 +115,7 @@ jobs: go-tests: name: go.${{ matrix.index }} needs: build - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: @@ -156,7 +156,7 @@ jobs: publish-test-results: name: publish-test-results needs: unit-tests - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 # the build-and-test job might be skipped, we don't need to run this job then if: success() || failure() diff --git a/README.md b/README.md index 7c5fa2e5a..168d8ad8d 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 18.04 / 20.04 / 22.04 x64 - Any currently supported release +- Ubuntu 20.04 / 22.04 x64 - Any currently supported release - Debian 10+ x64 - Arch Linux x64 *(experimental)* diff --git a/Vagrantfile b/Vagrantfile index 51ddce82f..3cd1c44d7 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,7 +1,7 @@ # -*- mode: ruby -*- # vi: set ft=ruby : -BOX_NAME = ENV["BOX_NAME"] || "bento/ubuntu-18.04" +BOX_NAME = ENV["BOX_NAME"] || "bento/ubuntu-20.04" BOX_CPUS = ENV["BOX_CPUS"] || "1" BOX_MEMORY = ENV["BOX_MEMORY"] || "1024" DOKKU_DOMAIN = ENV["DOKKU_DOMAIN"] || "dokku.me" diff --git a/bootstrap.sh b/bootstrap.sh index 99277b027..96d1c4e6c 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 18.04/20.04 via 'sudo` +# It expects to be run on Ubuntu 20.04/22.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. diff --git a/contrib/build-base.Dockerfile b/contrib/build-base.Dockerfile index f553a8cc9..e36bf9d90 100644 --- a/contrib/build-base.Dockerfile +++ b/contrib/build-base.Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:18.04 +FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive diff --git a/deb.mk b/deb.mk index 635ab036f..ba047238c 100644 --- a/deb.mk +++ b/deb.mk @@ -20,7 +20,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 "bionic") 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 "focal") 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 05b1f2ce9..f6f0e5a71 100644 --- a/docs/deployment/builders/dockerfiles.md +++ b/docs/deployment/builders/dockerfiles.md @@ -121,7 +121,7 @@ dokku docker-options:add node-js-app build '--build-arg NODE_ENV=production' Once set, the Dockerfile usage would be as follows: ```Dockerfile -FROM ubuntu:18.04 +FROM ubuntu:20.04 # set the argument default ARG NODE_ENV=production @@ -133,7 +133,7 @@ RUN echo $NODE_ENV You may also set the argument as an environment variable ```Dockerfile -FROM ubuntu:18.04 +FROM ubuntu:20.04 # set the argument default ARG NODE_ENV=production @@ -210,7 +210,7 @@ worker: bin/run-worker.sh And `Dockerfile`: ```Dockerfile -FROM ubuntu:18.04 +FROM ubuntu:20.04 WORKDIR /app COPY . ./ CMD ["bin/run-dev.sh"] diff --git a/docs/development/testing.md b/docs/development/testing.md index e19554676..dd6998092 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 Trusty 18.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 Focal 20.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 Trusty 18.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 Focal 20.04, we only provide official installation support for that platform and the latest LTS release of Ubuntu (currently 20.04). ## Local Test Execution diff --git a/docs/getting-started/install/debian.md b/docs/getting-started/install/debian.md index e0c39e019..23e86f9dd 100644 --- a/docs/getting-started/install/debian.md +++ b/docs/getting-started/install/debian.md @@ -12,8 +12,8 @@ wget -nv -O - https://get.docker.com/ | sh # install dokku wget -qO- https://packagecloud.io/dokku/dokku/gpgkey | sudo tee /etc/apt/trusted.gpg.d/dokku.asc -OS_ID="$(lsb_release -cs 2>/dev/null || echo "bionic")" -echo "bionic focal jammy" | grep -q "$OS_ID" || OS_ID="bionic" +OS_ID="$(lsb_release -cs 2>/dev/null || echo "focal")" +echo "focal jammy" | grep -q "$OS_ID" || OS_ID="focal" echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ ${OS_ID} main" | sudo tee /etc/apt/sources.list.d/dokku.list sudo apt-get update -qq >/dev/null sudo apt-get -qq -y install dokku diff --git a/docs/getting-started/install/dreamhost.md b/docs/getting-started/install/dreamhost.md index aec0d306d..57c3c7ff5 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 18.04, with 2 GB RAM and 1 CPU (the flavor called +based on Ubuntu 20.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-18.04 \ + --image Ubuntu-20.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 587b3138f..41db442a3 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 18.04/20.04/22.04](https://www.ubuntu.com/download) + - [Ubuntu 20.04/22.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 80dc35b92..61f3d6683 100644 --- a/docs/networking/port-management.md +++ b/docs/networking/port-management.md @@ -147,7 +147,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:18.04 +FROM ubuntu:20.04 EXPOSE 1234 RUN python -m SimpleHTTPServer 1234 ``` diff --git a/tests/ci/setup.sh b/tests/ci/setup.sh index 288fb2b3a..de17d564c 100755 --- a/tests/ci/setup.sh +++ b/tests/ci/setup.sh @@ -11,49 +11,49 @@ install_dependencies() { DOCKER_IMAGE_LABELER_VERSION=$(grep DOCKER_IMAGE_LABELER_VERSION "${ROOT_DIR}/Makefile" | head -n1 | cut -d' ' -f3) 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/bionic/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/focal/docker-image-labeler_${DOCKER_IMAGE_LABELER_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${DOCKER_IMAGE_LABELER_PACKAGE_NAME}" fi HEROKUISH_VERSION=$(grep HEROKUISH_VERSION "${ROOT_DIR}/Makefile" | head -n1 | cut -d' ' -f3) 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/bionic/herokuish_${HEROKUISH_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${HEROKUISH_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/herokuish_${HEROKUISH_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${HEROKUISH_PACKAGE_NAME}" fi LAMBDA_BUILDER_VERSION=$(grep LAMBDA_BUILDER_VERSION "${ROOT_DIR}/Makefile" | head -n1 | cut -d' ' -f3) 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/bionic/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/focal/lambda-builder_${LAMBDA_BUILDER_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${LAMBDA_BUILDER_PACKAGE_NAME}" fi NETRC_VERSION=$(grep NETRC_VERSION "${ROOT_DIR}/Makefile" | head -n1 | cut -d' ' -f3) 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/bionic/netrc_${NETRC_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${NETRC_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/netrc_${NETRC_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${NETRC_PACKAGE_NAME}" fi PLUGN_VERSION=$(grep PLUGN_VERSION "${ROOT_DIR}/Makefile" | head -n1 | cut -d' ' -f3) 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/bionic/plugn_${PLUGN_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${PLUGN_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/plugn_${PLUGN_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${PLUGN_PACKAGE_NAME}" fi SSHCOMMAND_VERSION=$(grep SSHCOMMAND_VERSION "${ROOT_DIR}/Makefile" | head -n1 | cut -d' ' -f3) 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/bionic/sshcommand_${SSHCOMMAND_VERSION}_all.deb/download.deb" -o "$ROOT_DIR/build/${SSHCOMMAND_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/focal/sshcommand_${SSHCOMMAND_VERSION}_all.deb/download.deb" -o "$ROOT_DIR/build/${SSHCOMMAND_PACKAGE_NAME}" fi SIGIL_VERSION=$(grep SIGIL_VERSION "${ROOT_DIR}/Makefile" | head -n1 | cut -d' ' -f3) 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/bionic/gliderlabs-sigil_${SIGIL_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${SIGIL_PACKAGE_NAME}" + 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}" fi PROCFILE_VERSION=$(grep PROCFILE_VERSION "${ROOT_DIR}/Makefile" | head -n1 | cut -d' ' -f3) 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/bionic/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/focal/procfile-util_${PROCFILE_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${PROCFILE_UTIL_PACKAGE_NAME}" fi sudo apt-get update -qq