Ejemplo de servidor de creación de imágenes de Docker para CodeBuild - AWS CodeBuild

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.

Ejemplo de servidor de creación de imágenes de Docker para CodeBuild

En el ejemplo siguiente se transfieren compilaciones de Docker a un servidor de compilación de imágenes administrado. Puede adaptar este ejemplo para aprovisionar un servidor de creación de imágenes de Docker dedicado y administrado en la configuración de su proyecto. CodeBuild Ten en cuenta que la instancia aprovisionada está activa mientras las compilaciones se ejecutan activamente para el proyecto, y la instancia se detiene cuando las compilaciones no se están ejecutando. La instancia aprovisionada se almacena durante un mes como máximo antes de reciclarla. Para obtener más información, consulte Capacidad del servidor CodeBuild Docker.

importante

Si ejecuta este ejemplo, es posible que se le cobren cargos a su AWS cuenta. Estos incluyen posibles cargos por CodeBuild y por AWS los recursos y acciones relacionados con Amazon S3 y CloudWatch Logs. AWS KMS Para obtener más información, consulte CodeBuild precios, precios de Amazon S3, AWS Key Management Service precios y CloudWatchprecios de Amazon.

Configuración de un servidor de Docker

Utilice el siguiente procedimiento para aprovisionar un entorno informático dedicado a un CodeBuild proyecto que administre las cargas de trabajo de Docker y almacene las capas de imágenes de Docker.

Cómo configurar un servidor de Docker
  1. Cree los archivos tal y como se describe en las Archivos secciones Estructura de directorios y de este tema y, a continuación, cárguelos en un depósito de entrada de S3 o en un repositorio AWS CodeCommit de GitHub Bitbucket.

    importante

    No cargue (root directory name), solo los archivos incluidos en (root directory name).

    Si utiliza un bucket de entrada de S3, no olvide crear un archivo ZIP que contenga los archivos y cárguelo en el bucket de entrada. No añada (root directory name) al archivo ZIP, solo los archivos incluidos en (root directory name).

  2. Cree un proyecto de compilación, ejecute la compilación y vea la información de compilación relacionada:

    1. En la sección Entorno de la consola, elija Configuración adicional, vaya a Configuración del servidor Docker y, a continuación, seleccione Habilitar servidor de Docker para este proyecto. A continuación, puede elegir Tipo de computación del servidor de Docker y proporcione una Credencial de registro.

    2. Si utilizas el AWS CLI para crear el proyecto de compilación, la entrada del create-project comando con formato JSON podría tener un aspecto similar al siguiente. (Sustituya los marcadores de posición por sus propios valores).

      { "name": "sample-docker-custom-image-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/DockerServerSample.zip" }, "artifacts": { "type": "NO_ARTIFACTS" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/amazonlinux-x86_64-standard:5.0", "computeType": "BUILD_GENERAL1_LARGE", "dockerServer": [ { "computeType": "BUILD_GENERAL1_LARGE", "securityGroupIds": [ "security-groups-ID" ] } ] }, "serviceRole": "arn:aws:iam::account-ID:role/role-name" }
      nota

      Los grupos de seguridad configurados para servidores Docker deben permitir la entrada de tráfico de red desde la VPC configurada en el proyecto. Deberían permitir la entrada por el puerto 9876.

  3. Para ver los resultados de compilación, busque en el log de la compilación la cadena Hello, World! Para obtener más información, consulte Ver detalles de las compilaciones.

Estructura de directorios

En este ejemplo se presupone que existe esta estructura de directorios.

(root directory name) ├── buildspec.yml └── Dockerfile

Archivos

La imagen base del sistema operativo utilizado en este ejemplo es Ubuntu. El ejemplo usa los siguientes archivos.

buildspec.yml (in (root directory name))

version: 0.2 phases: build: commands: - docker buildx build . - docker run helloworld echo "Hello, World!"

Dockerfile (in (root directory name))

FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN echo "Hello World"