Linux Machine Executor Images - 2021 July (Q3) Update

Hey Everyone!

Our quarterly new Linux machine images are available. The updated Ubuntu 20.04 images are now available:

  • ubuntu-2004:202107-02

This July refresh updates software included in the image, which can be found below. See the machine executor docs for more information about how to use the machine executor and these images.

What’s New

  • standard updates

Release Cadence

As a reminder, we have a quarterly release cadence for these images. This is the July update meaning the next two Linux image releases will be in October and January.

Ubuntu 16.04 was End-of-lifed (EOL)

Reminder: Ubuntu 16.04 reached the end of its LTS window last April and is no longer supported by Canonical. Last April was the final 16.04 CircleCI machine image to be released by us. We suggest upgrading to the Ubuntu 20.04 image for continued releases and support past April, 2021.

Example

Here’s a quick usage example:

version: 2.1
workflows:
  main:
    jobs:
      - build
jobs:
  build:
    machine:
      image: ubuntu-2004:202107-02
    steps:
      - checkout
      - run: echo "Do some things"

Software

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-2004:202107-02)
AWS CLI 2.2.18
Google Chrome 91.0.4472.114
Docker 20.10.7
Docker Compose 1.29.2
Firefox 90.0
Go 1.16.6
Google Cloud SDK 348.0.0
Gradle 7.1.1
Heroku 7.53.0
jq 1.6
Leiningen 2.9.6
Maven 3.8.1
Node.js 14.17.3
npm 7.19.1
OpenJDK 11.0.11
Python 3.9.4
Ruby 3.0.2
SBT 1.5.5
Snapcraft 4.6.3
yq 4.7.1

Hey @jlenos, the npm version in the image is now available as part of our version table, as you requested. :slight_smile:

1 Like

Hey there - thanks for the update!

Unfortunately it appears that pyenv is busted on this new machine image:

circleci@default-<guid>:~/project$ which pyenv
/opt/circleci/.pyenv/bin/pyenv
circleci@default-<guid>:~/project$ pyenv --help
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
/opt/circleci/.pyenv/libexec/pyenv-help: line 156: exec: pyenv-commands: not found

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme
circleci@default-<guid>:~/project$ pyenv install -s
/opt/circleci/.pyenv/plugins/python-build/bin/pyenv-install: line 53: python-build: command not found
/opt/circleci/.pyenv/plugins/python-build/bin/pyenv-install: line 76: parse_options: command not found

investigating

Update:

I can confirm that when using pyenv install and then pyenv global, the custom installed version of Python can’t actually be used as expected.

We’re looking into a fix.

Hey @FelicianoTech and team, unfortunately pyenv --help is still failing in the same way on this new ubuntu-2004:202107-02 image.

Hmm. What is it that you’re actually trying to accomplish during a pipeline? I assume it’s not pyenv --help. If you can tell me which commands that you’re running that aren’t working during the pipeline, I can try to replicate and take a look.

We’re running:
pyenv install -s 3.8.5 && pyenv global 3.8.5

Thanks!
James

Hey. I ran a test with the new image and it appears to work. Here’s my test: https://app.circleci.com/pipelines/github/felicianotech/cci-testing-pub/511/workflows/7375c264-ceab-44f6-b915-ba996b2b84f8/jobs/1366

I did the exact command you mentioned here. At this point I’d suggest reaching out to support so that they can give you more focus help with this issue than I can provide here on the forum.

Okay, gotcha. The last thing I’ll let you know here is that I did notice a different in our build-agent versions.

Our build says:
Build-agent version 1.0.81935-9c684e47 (2021-08-11T15:10:00+0000)

whereas yours says
Build-agent version 1.0.81231-5cc672dd (2021-08-06T16:54:24+0000)

The build-agent is something that is injected by CircleCI at runtime. It doesn’t come in the image. While not impossible, it’s unlikely that it’s the source of the problem. If you run a build today, you’ll likely see an even newer version of build-agent since it has its own independent release cycle.

Thanks for pointing me to support. They helped track down that us modifying the PATH in this way appears to have been causing the issues. (We’re not sure why exactly.)

echo "export PATH=/home/circleci/.local/bin:$PATH" >> $BASH_ENV

Removing that got everything working again. Thanks again!

1 Like