Especificación de imágenes del entorno de ejecución - Amazon CodeCatalyst

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Especificación de imágenes del entorno de ejecución

Una imagen de entorno de ejecución es un contenedor de Docker en el que CodeCatalyst se ejecutan las acciones del flujo de trabajo. El contenedor Docker se ejecuta sobre la plataforma de procesamiento elegida e incluye un sistema operativo y herramientas adicionales que una acción de flujo de trabajo podría necesitar, como Node.js y.tar. AWS CLI

De forma predeterminada, las acciones del flujo de trabajo se ejecutarán en una de las imágenes activas suministradas y mantenidas por. CodeCatalyst Solo las acciones de creación y prueba admiten imágenes personalizadas. Para obtener más información, consulte Asignación de una imagen de Docker de un entorno de ejecución personalizado a una acción.

Imágenes activas

Las imágenes activas son imágenes del entorno de ejecución totalmente compatibles con herramientas preinstaladas CodeCatalyst e incluidas. Actualmente hay dos conjuntos de imágenes activas: uno publicado en marzo de 2024 y otro publicado en noviembre de 2022.

El hecho de que una acción utilice una imagen de marzo de 2024 o de noviembre de 2022 depende de la acción:

  • Las acciones de creación y prueba que se agreguen a un flujo de trabajo el 26 de marzo de 2024 o después incluirán una Container sección en su YAML definición que especifique explícitamente una imagen de marzo de 2024. Si lo desea, puede eliminar la Container sección para volver a la imagen de noviembre de 2022.

  • Las acciones de creación y prueba que se agregaron a un flujo de trabajo antes del 26 de marzo de 2024 no incluirán una Container sección en su YAML definición y, por lo tanto, utilizarán una imagen de noviembre de 2022. Puedes conservar la imagen de noviembre de 2022 o puedes actualizarla. Para actualizar la imagen, abra la acción en el editor visual, elija la pestaña Configuración y, a continuación, seleccione la imagen de marzo de 2024 en la lista desplegable de imágenes docker del entorno de ejecución. Esta selección añadirá una Container sección a la YAML definición de la acción que se rellenará con la imagen correspondiente de marzo de 2024.

  • Todas las demás acciones utilizarán una imagen de noviembre de 2022 o una imagen de marzo de 2024. Para obtener más información, consulta la documentación de la acción.

Imágenes de marzo de 2024

Las imágenes de marzo de 2024 son las últimas imágenes proporcionadas por CodeCatalyst. Hay una imagen de marzo de 2024 por combinación de tipo de cómputo y flota.

La siguiente tabla muestra las herramientas instaladas en cada imagen de marzo de 2024.

Herramientas de imagen de marzo de 2024
Herramienta CodeCatalyst Amazon EC2 para Linux x86_64 - CodeCatalystLinux_x86_64:2024_03 CodeCatalyst Lambda para Linux x86_64 - CodeCatalystLinuxLambda_x86_64:2024_03 CodeCatalyst Amazon EC2 para Linux Arm64 - CodeCatalystLinux_Arm64:2024_03 CodeCatalyst Lambda para Linux Arm64 - CodeCatalystLinuxLambda_Arm64:2024_03
AWS CLI 2.15.17 2.15.17 2.15.17 2.15.17
AWS Copiloto CLI 1.32.1 1,32.1 1,32.1 1,32.1
Docker 240,9 N/A 24.0.9 N/A
Docker Compose 2.23.3 N/A 2.23.3 N/A
Git 2.43,0 2.43,0 2.43,0 2.43,0
Go 1,21,5 1.21.5 1.21.5 1.21.5
Gradle 8.5 8.5 8.5 8.5
Java Corretto 17 Corretto 17 Corretto 17 Corretto 17
Maven 3.9.6 3.9.6 3.9.6 3.9.6
Node.js 18,19,0 18,19,0 18,19,0 18,19,0
npm 102.3 10.2.3 10.2.3 10.2.3
Python 3,9,18 3.9,18 3.9,18 3.9,18
Python3 3.11.6 3.11.6 3.11.6 3.11.6
pip 22.3.1 22.3.1 22.3.1 22.3.1
.NET 8.0.100 8.0.100 8.0.100 8.0.100

Imágenes de noviembre de 2022

Hay una imagen de noviembre de 2022 por combinación de tipo de cómputo y flota. También hay una imagen de Windows de noviembre de 2022 disponible con la acción de compilación si ha configurado una flota aprovisionada.

En la siguiente tabla se muestran las herramientas instaladas en cada imagen de noviembre de 2022.

Herramientas de imagen de noviembre de 2022
Herramienta CodeCatalyst Amazon EC2 para Linux x86_64 - CodeCatalystLinux_x86_64:2022_11 CodeCatalyst Lambda para Linux x86_64 - CodeCatalystLinuxLambda_x86_64:2022_11 CodeCatalyst Amazon EC2 para Linux Arm64 - CodeCatalystLinux_Arm64:2022_11 CodeCatalyst Lambda para Linux Arm64 - CodeCatalystLinuxLambda_Arm64:2022_11 CodeCatalyst Amazon EC2 para Windows x86_64 - CodeCatalystWindows_x86_64:2022_11
AWS CLI 2.15.17 2.15.17 2.15.17 2.15.17 2.13.19
AWS Copiloto CLI 0.6.0 0.6.0 N/A N/A 1.30.1
Docker 23,01 N/A 23.0.1 N/A N/A
Docker Compose 2.16.0 N/A 2.16.0 N/A N/A
Git 2.40.0 2.40.0 2.39,2 2.39,2 2.42,0
Go 1.20.2 1.20.2 1.20.1 1,20.1 1.19
Gradle 8.0.2 8.0.2 8.0.1 8.0.1 8.3
Java Corretto 17 Corretto 17 Corretto 17 Corretto 17 Corretto 17
Maven 3.9.4 3.9.4 3.9.0 3.9.0 3.9.4
Node.js 16,20,2 16,20,2 16,19,1 16,14.2 16,20,0
npm 8,19,4 8.19,4 8.19,3 8.5.0 8.19,4
Python 3,9,15 2.7.18 3.11.2 2.7.18 3.9.13
Python3 N/A 3,9,15 N/A 3.11.2 N/A
pip 22.2.2 22.2.2 23.0.1 23.0.1 22.0.4
.NET 6.0.407 6,0407 6,0406 6.0.406 6.0.414

¿Qué pasa si una imagen activa no incluye las herramientas que necesito?

Si ninguna de las imágenes activas suministradas por CodeCatalyst incluye las herramientas que necesita, tiene un par de opciones:

  • Puede proporcionar una imagen de Docker de un entorno de ejecución personalizado que incluya las herramientas necesarias. Para obtener más información, consulte Asignación de una imagen de Docker de un entorno de ejecución personalizado a una acción.

    nota

    Si deseas proporcionar una imagen de Docker de un entorno de ejecución personalizado, asegúrate de que la imagen personalizada tenga Git instalado.

  • Puedes hacer que la acción de creación o prueba de tu flujo de trabajo instale las herramientas que necesites.

    Por ejemplo, puedes incluir las siguientes instrucciones en la Steps sección del YAML código de la acción de compilación o prueba:

    Configuration: Steps: - Run: ./setup-script

    La setup-script La instrucción ejecutaría entonces el siguiente script para instalar el administrador de paquetes Node (npm):

    #!/usr/bin/env bash echo "Setting up environment" touch ~/.bashrc curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash source ~/.bashrc nvm install v16.1.0 source ~/.bashrc

    Para obtener más información sobre la acción de compilaciónYAML, consulteCrear y probar acciones YAML.

Asignación de una imagen de Docker de un entorno de ejecución personalizado a una acción

Si no quieres usar una imagen activa proporcionada por CodeCatalyst, puedes proporcionar una imagen de Docker de un entorno de ejecución personalizado. Si quieres proporcionar una imagen personalizada, asegúrate de que tenga Git instalado. La imagen puede residir en Docker Hub, Amazon Elastic Container Registry o cualquier repositorio público.

Para obtener información sobre cómo crear una imagen de Docker personalizada, consulte Containerizar una aplicación en contenedores en la documentación de Docker.

Usa las siguientes instrucciones para asignar una imagen de Docker de tu entorno de ejecución personalizado a una acción. Tras especificar una imagen, la CodeCatalyst despliega en la plataforma de procesamiento cuando se inicia la acción.

nota

Las siguientes acciones no son compatibles con las imágenes de Docker del entorno de ejecución personalizado: Deploy AWS CloudFormation stack, Deploy to ECS y GitHub Actions. Las imágenes de Docker del entorno de ejecución personalizado tampoco admiten el tipo de cálculo Lambda.

Visual
Para asignar un entorno de ejecución personalizado, una imagen de Docker mediante el editor visual
  1. Abra la CodeCatalyst consola en https://codecatalyst.aws/.

  2. En el panel de navegación, elija CI/CD y, a continuación, elija Flujos de trabajo.

  3. Elija el nombre de su flujo de trabajo. Puede filtrar por el nombre del repositorio o la rama de origen donde está definido el flujo de trabajo, o bien filtrar por nombre o estado del flujo de trabajo.

  4. Elija Editar.

  5. Elija Visual.

  6. En el diagrama de flujo de trabajo, elige la acción que utilizará la imagen de Docker de tu entorno de ejecución personalizado.

  7. Elija la pestaña Configuración.

  8. En la parte inferior, rellena los siguientes campos.

    Imagen de Docker del entorno de ejecución: opcional

    Especifique el registro en el que se almacena la imagen. Los valores válidos son:

    • CODECATALYST(YAMLeditor)

      La imagen se guarda en el CodeCatalyst registro.

    • Docker Hub (editor visual) o DockerHub (YAMLeditor)

      La imagen se almacena en el registro de imágenes de Docker Hub.

    • Otro registro (editor visual) o Other (YAMLeditor)

      La imagen se guarda en un registro de imágenes personalizado. Se puede utilizar cualquier registro disponible públicamente.

    • Amazon Elastic Container Registry (editor visual) o ECR (YAMLeditor)

      La imagen se almacena en un repositorio de imágenes de Amazon Elastic Container Registry. Para usar una imagen en un ECR repositorio de Amazon, esta acción necesita acceso a AmazonECR. Para habilitar este acceso, debes crear un IAMrol que incluya los siguientes permisos y una política de confianza personalizada. (Si lo desea, puede modificar un rol existente para incluir los permisos y la política).

      El IAM rol debe incluir los siguientes permisos en su política de roles:

      • ecr:BatchCheckLayerAvailability

      • ecr:BatchGetImage

      • ecr:GetAuthorizationToken

      • ecr:GetDownloadUrlForLayer

      El IAM rol debe incluir la siguiente política de confianza personalizada:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

      Para obtener más información sobre la creación de IAM roles, consulte Creación de un rol mediante políticas de confianza personalizadas (consola) en la Guía del IAM usuario.

      Una vez que haya creado el rol, debe asignarlo a la acción a través de un entorno. Para obtener más información, consulte Asociar un entorno a una acción.

    ECRimagenURL, imagen o imagen de Docker Hub URL

    Especifique uno de los siguientes valores:

    • Si utiliza un CODECATALYST registro, defina la imagen en una de las siguientes imágenes activas:

      • CodeCatalystLinux_x86_64:2024_03

      • CodeCatalystLinux_x86_64:2022_11

      • CodeCatalystLinux_Arm64:2024_03

      • CodeCatalystLinux_Arm64:2022_11

      • CodeCatalystLinuxLambda_x86_64:2024_03

      • CodeCatalystLinuxLambda_x86_64:2022_11

      • CodeCatalystLinuxLambda_Arm64:2024_03

      • CodeCatalystLinuxLambda_Arm64:2022_11

      • CodeCatalystWindows_x86_64:2022_11

    • Si utiliza un registro de Docker Hub, defina la imagen con el nombre de la imagen de Docker Hub y la etiqueta opcional.

      Ejemplo: postgres:latest

    • Si utilizas un ECR registro de Amazon, configura la imagen en el ECR registro de AmazonURI.

      Ejemplo: 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo

    • Si utilizas un registro personalizado, establece la imagen en el valor esperado por el registro personalizado.

  9. (Opcional) Elija Validar para validar el YAML código del flujo de trabajo antes de confirmarlo.

  10. Selecciona Confirmar, introduce un mensaje de confirmación y vuelve a seleccionar Confirmar.

YAML
Para asignar una imagen de Docker de un entorno de ejecución personalizado mediante el editor YAML
  1. En el panel de navegación, elija CI/CD y, a continuación, elija Flujos de trabajo.

  2. Elija el nombre de su flujo de trabajo. Puede filtrar por el nombre del repositorio o la rama de origen donde está definido el flujo de trabajo, o bien filtrar por nombre o estado del flujo de trabajo.

  3. Elija Editar.

  4. Elija YAML.

  5. Busque la acción a la que desee asignar una imagen de Docker de un entorno de ejecución.

  6. En la acción, añade una Container sección Registry y Image sus propiedades subyacentes. Para obtener más información, consulte la Container descripción Registry y Image las propiedades Acciones de la acción.

  7. (Opcional) Elija Validar para validar el YAML código del flujo de trabajo antes de confirmarlo.

  8. Selecciona Confirmar, introduce un mensaje de confirmación y vuelve a seleccionar Confirmar.

Ejemplos

Los siguientes ejemplos muestran cómo asignar una imagen de Docker de un entorno de ejecución personalizado a una acción del archivo de definición del flujo de trabajo.

Ejemplo: usar una imagen de Docker de un entorno de ejecución personalizado para añadir compatibilidad con Node.js 18 con Amazon ECR

En el siguiente ejemplo, se muestra cómo utilizar una imagen de Docker de un entorno de ejecución personalizado para añadir compatibilidad con Node.js 18 con Amazon ECR.

Configuration: Container: Registry: ECR Image: public.ecr.aws/amazonlinux/amazonlinux:2023

Ejemplo: usar una imagen de Docker de un entorno de ejecución personalizado para añadir compatibilidad con Node.js 18 con Docker Hub

En el siguiente ejemplo, se muestra cómo utilizar una imagen de Docker de un entorno de ejecución personalizado para añadir compatibilidad con Node.js 18 con Docker Hub.

Configuration: Container: Registry: DockerHub Image: node:18.18.2