Linux Machine Executor - 2023 Q3 Update

Hey Everyone!

Quarterly updates across the Linux family with updates are now available with the following image tags:

  • ubuntu-2004:2023.07.1
  • ubuntu-2204:2023.07.2

Note that edge will point to the latest development version, but will be built off of the quarterly release

20.04 and 22.04 are both available on amd64 and arm64 architecture,

Please note:

This refresh updates software included in the image, which can be found below. See the
20.04 docs , and 22.04 docs for more information about how to use the machine executor and these images, including utilizing the resource class designation for arm machines.

What’s New

  • Standard Quarterly Update
  • Solved a bug with ulimit preventing core dumps on 22.04

Release Cadence

These images are updated quarterly, excluding security updates

Example

Here’s a quick usage example:

version: 2.1
workflows:
  main:
    jobs:
      - build
jobs:
  build:
    machine:
      image: ubuntu-2204:2023.07.2
    steps:
      - checkout
      - run: echo "Do some things"

Software

Notes:

  • Google Chrome is not available on arm images

Docker Compose: 2.17.2 → 2.18.1
gcloud: → 424 → 437
Go: 1.20.2 → 1.20.5
Node: 18.15.0 → 18.16.1
Maven: 3.9.1 → 3.9.3
Gradle: 8.0.2 → 8.2
Python: 3.11.2 → 3.11.4
Ruby: 3.2.1 → 3.2.2
yq: 4.33.1 → 4.34.1
sbt: 1.8.2 → 1.9.1

Here is a list of the major software installed on each image. If multiple versions are present, the default is shown here:

Ubuntu 20.04 Ubuntu 22.04
Tag ubuntu-2004:2023.07.1 ubuntu-2204:2023.07.2
AWS CLI 2.9.21.2 2.9.21
Docker 20.10.24 20.10.24
Docker Compose 2.18.1 2.18.1
Docker Compose Switch 1.0.5 1.0.5
Google Cloud SDK 437.0.1 437.0.1
Google Chrome 111.0.5563.146 111.0.5563.146
Firefox 111.0.1 111.0.1
Go 1.20.5 1.20.4
Node.js 18.16.1 18.16.1
npm 9.4.1 9.4.1
yarn 1.22.19 1.22.19
OpenJDK 17.0.6 17.0.6
Leiningen 2.10.0 2.10.0
Maven 3.9.3 3.9.3
Gradle 8.2 8.2
Python 3.11.4 3.11.4
Ruby 3.2.2 3.2.2
jq 1.6 1.6
yq 4.34.1 4.34.1
sbt 1.9.1 1.9.1

Hello, we’ve started to get failures in some jobs today since ubuntu-2204:current was switched from ubuntu-2204:2023.04.2 to ubuntu-2204:2023.07.2.

We’re not sure what the root cause is but seemingly innocuous statements are exiting with code 127. for example:

mkdir -p ~/.docker && echo "$DOCKER_HUB_CREDENTIALS" > ~/.docker/config.json
echo "Installed " && go version

SSH-ing into the instance to run those commands don’t return the same error.

Hi @danielpoonwj - i am currently unable to reproduce your error from what you’ve provided, though I will say I do not have the DOCKER_HUB_CREDENTIALS variable set

are you able to share a build link with us or submit a support ticket so we can see what’s going on?

Hi @jalex, thanks for getting back to me. Looks like it’s not directly related to the image change, but an issue with the circleci/go orb. With v1.7.2 of the orb, the job with ubuntu-2204:current fails but ubuntu-2204:2023.04.2 passes. Upgrading to v1.7.3 passes on both, probably because of a fix to the $PATH. Not sure why there’s a difference in behaviour between the images, but just an FYI for anyone who may be encountering this.

Here’s a minimally reproducible example. Upgrading to circleci/go@1.7.3 fixes this.

version: 2.1

orbs:
  go: circleci/go@1.7.2

jobs:
  test:
    parameters:
      machine-image:
        type: string
    machine:
      image: << parameters.machine-image >>
    resource_class: medium
    steps:
      - go/install:
          version: '1.19'

workflows:
  version: 2
  test:
    jobs:
      - test:
          name: test-ubuntu-2204-current
          machine-image: ubuntu-2204:current
      - test:
          name: test-ubuntu-2204-2023-04-2
          machine-image: ubuntu-2204:2023.04.2

Hi @danielpoonwj - perhaps this change from 1.7.2 → 1.7.3 is the culprit.

Thanks for confirming it is not an image issue. Let us know if you run into any other issues!

When can we expect to find OpenJDK 21 installed by default?

1 Like