2
votes

We are building our project and we have to use AWS CLI v2 to deploy our project.

The runtime version that we use is this one:

phases:
  install:
    runtime-versions:
      nodejs: 12.x

Is there an official AWS CodeBuild nodejs image that we can use that has AWS CLI v2 installed or do we need to create our own. Is there an elegant way to upgrade to v2 for the above runtime?

This seems that it works but it might not be very stable in the future:

 # uninstall awscli version 1
 - pip3 uninstall -y awscli
 # install awscli version 2
 - curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
 - unzip awscliv2.zip
 - ./aws/install
1
Official images use cli v1. The snipped you showed, does not work?Marcin
@Marcin it does work, but it might be a bit fragile in the futureStavros Zavrakas
I think v2 is too new. If you don't want to install it like this each time you do the build, you can create custom CB image with per-installed v2.Marcin
@Marcin cheers, we'll stick with the solution above and we'll wait for official images laterStavros Zavrakas
Sounds as a good plan :-)Marcin

1 Answers

4
votes

Based on the comments, I can add a little bit of more info.

Official CB docker images are listed here. The two newest ones are

Both these images are also open sourced (links above). Thus, we can inspect their Dockerfile files.

In both of them, awscli is installed in a similar way:

pip3 install --no-cache-dir --upgrade setuptools wheel aws-sam-cli awscli boto3 pipenv virtualenv

As we can see, this installs awscliv1.

Instructions for installing awscliv2 are different and they do not involve pip.