Migrating from Ubuntu 18.04 to Ubuntu 20.04#
If you've used the Semaphore Ubuntu 18.04 image, this guide will help you migrate to the Ubuntu 20.04 image.
You have to migrate#
Due to the end of standard support for Ubuntu 18.04 on 31 May 2023, we will no longer provide updates for the ubuntu1804
image. However, the image will remain available until 31 March 2024. We encourage you to consider migrating to either the ubuntu2004
or ubuntu2204
image.
Benefits of using the Ubuntu 20.04 image#
Ubuntu 20.04 LTS (Focal Fossa) is the newer LTS release for the Ubuntu Linux server operating system. There are many good reasons to keep your development environment up to date. Here are only some of the benefits of switching to Ubuntu 20.04:
- Speed - this release has enhanced resource usage and includes a newer kernel.
- Longer support - Canonical will support Ubuntu 20.04 until April 2025.
- Latest language versions - in the future, some packages may not be supported by upstream providers for Ubuntu 18.04.
- Expanded software stack - the 20.04 software stack will continue expanding with new packages, while new packages will not be added for 18.04.
- Containers - the newest utilities can be installed (podman, skopeo, buildah).
If you want to read more about Ubuntu 20.04, check out the Ubuntu Blog.
Ubuntu 20.04 image on Semaphore#
The Ubuntu 20.04 image on Semaphore is the successor of the Ubuntu 18.04 image. Its pre-installed stack includes the most recent versions for many languages and frameworks. For the exact list, please consult the Ubuntu 20.04 image documentation.
Using the Ubuntu 20.04 image#
As a first step, please check your software version requirements in the software availability matrix below.
If the available software stack matches your requirements, changing the image type is as simple
as changing the os_image:
line to use ubuntu2004
instead of ubuntu1804
in your semaphore.yml file.
Software stack availability matrix
Software | Ubuntu 18.04 image | Ubuntu 20.04 image |
---|---|---|
AWS CLI | ✔ | ✔ |
Azure CLI | ✔ | ✔ |
Bazel | ✔ | ✔ |
Buildah | ✗ | ✔ |
Gcc | ✔ | ✔ |
Google Chrome | ✔ | ✔ |
ChromeDriver | ✔ | ✔ |
Closure | ✔ | ✔ |
Docker | ✔ | ✔ |
Dockercompose | ✔ | ✔ |
DigitalOcean CLI | ✔ | ✔ |
Elixir 1.7.4 | ✔ | ✗ |
Elixir 1.8.x | ✔ | ✗ |
Elixir 1.9.4 | ✔ | ✗ |
Elixir 1.10.x | ✔ | ✗ |
Elixir 1.11.x | ✔ | ✗ |
Elixir 1.11.4 | ✔ | ✔ |
Elixir 1.12.x | ✔ | ✔ |
Elixir 1.13.x | ✔ | ✔ |
Elixir 1.14.x | ✔ | ✔ |
Elixir 1.15.x | ✔ | ✔ |
Erlang 21 | ✔ | ✗ |
Erlang 22 | ✔ | ✗ |
Erlang 23 | ✔ | ✗ |
Erlang 24 | ✔ | ✔ |
Erlang 25 | ✔ | ✔ |
Erlang 26 | ✔ | ✔ |
Firefox | ✔ | ✔ |
Google Cloud CLI | ✔ | ✔ |
Git | ✔ | ✔ |
Go | ✔ | ✔ |
Heroku | ✔ | ✔ |
Helm | ✔ | ✔ |
Maven | ✔ | ✔ |
NodeJS | ✔ | ✔ |
PhantomJS | ✔ | ✔ |
PHP 7.1.x | ✔ | ✗ |
PHP 7.2.x | ✔ | ✗ |
PHP 7.3.x | ✔ | ✗ |
PHP 7.4.x | ✔ | ✔ |
PHP 8.0.x | ✔ | ✔ |
PHP 8.1.x | ✔ | ✔ |
PHP 8.2.x | ✔ | ✔ |
Podman | ✗ | ✔ |
Python 2.7 | ✔ | ✗ |
Python 3.6 | ✔ | ✗ |
Python 3.7 | ✔ | ✗ |
Python 3.8 | ✔ | ✔ |
Python 3.9 | ✔ | ✔ |
Python 3.10 | ✔ | ✔ |
Python 3.11 | ✔ | ✔ |
Ruby 1.9.x | ✔ | ✗ |
Ruby 2.0.x | ✔ | ✗ |
Ruby 2.1.x | ✔ | ✗ |
Ruby 2.2.x | ✔ | ✗ |
Ruby 2.3.x | ✔ | ✗ |
Ruby 2.4.x | ✔ | ✗ |
Ruby 2.5.x | ✔ | ✗ |
Ruby 2.6.x | ✔ | ✔ |
Ruby 2.7.x | ✔ | ✔ |
Ruby 3.0.x | ✔ | ✔ |
Ruby 3.1.x | ✔ | ✔ |
Ruby 3.2.x | ✔ | ✔ |
Scala | ✔ | ✔ |
Skopeo | ✗ | ✔ |
Terraform | ✔ | ✔ |