Docker en una muestra de imagen personalizada 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.

Docker en una muestra de imagen personalizada para CodeBuild

En el siguiente ejemplo, se crea y ejecuta una imagen de Docker mediante AWS CodeBuild una imagen de compilación de Docker personalizada (docker:dinden Docker Hub).

Para aprender a crear una imagen de Docker utilizando en su lugar una imagen de compilación proporcionada por CodeBuild el soporte de Docker, consulta nuestra. Ejemplo de «Publicar una imagen de Docker en AmazonECR»

importante

Si ejecutas este ejemplo, es posible que se te cobren cargos en tu cuenta. AWS 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.

Ejecute el Docker en una muestra de imagen personalizada

Utilice el siguiente procedimiento para ejecutar el ejemplo de Docker en una imagen personalizada. Para obtener más información sobre este ejemplo, consulteDocker en una muestra de imagen personalizada para CodeBuild.

Para ejecutar el ejemplo de Docker en una imagen personalizada
  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 AWS CodeCommit GitHub repositorio de Bitbucket.

    importante

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

    Si utilizas un depósito de entrada de S3, asegúrate de crear un ZIP archivo que contenga los archivos y, a continuación, cárgalo en el depósito de entrada. No añada (root directory name) al ZIP archivo, solo los archivos que contiene(root directory name).

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

    Si utilizas el AWS CLI para crear el proyecto de compilación, la entrada JSON con formato -del create-project comando 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/DockerCustomImageSample.zip" }, "artifacts": { "type": "NO_ARTIFACTS" }, "environment": { "type": "LINUX_CONTAINER", "image": "docker:dind", "computeType": "BUILD_GENERAL1_SMALL", "privilegedMode": false }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }
    nota

    De forma predeterminada, el daemon de Docker está habilitado para compilaciones que no son de ningún tipo. VPC Si quieres usar contenedores de Docker para VPC compilaciones, consulta Runtime Privilege y Linux Capabilities en el sitio web de Docker Docs y habilita el modo privilegiado. Además, Windows no admite el modo privilegiado.

  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: pre_build: commands: - docker build -t helloworld . build: commands: - docker images - docker run helloworld echo "Hello, World!"

Dockerfile (in (root directory name))

FROM maven:3.3.9-jdk-8 RUN echo "Hello World"