View a markdown version of this page

Exemple de serveur de création d'images Docker pour CodeBuild - AWS CodeBuild

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemple de serveur de création d'images Docker pour CodeBuild

L'exemple suivant décharge vos builds Docker vers un serveur de création d'images géré. Vous pouvez adapter cet exemple pour provisionner un serveur de création d'images Docker dédié et géré dans la configuration de votre CodeBuild projet. Notez que l'instance provisionnée est active pendant que les builds sont activement exécutés pour le projet, et l'instance est arrêtée lorsque les builds ne sont pas en cours d'exécution. L'instance provisionnée est stockée jusqu'à un mois avant d'être recyclée. Pour plus d'informations, consultez la section Capacité du serveur CodeBuild Docker.

Important

L'exécution de cet exemple peut entraîner des frais sur votre AWS compte. Il s'agit notamment des frais éventuels pour CodeBuild et pour les AWS ressources et les actions liées à Amazon S3 AWS KMS, et CloudWatch Logs. Pour plus d'informations, consultez les CodeBuild rubriques Tarification, Tarification Amazon S3 , AWS Key Management Service Tarification et CloudWatch Tarification Amazon.

Configuration d'un serveur Docker

Utilisez la procédure suivante pour provisionner un environnement de calcul dédié pour un CodeBuild projet qui gère les charges de travail Docker et stocke les couches d'images Docker.

Pour configurer un serveur Docker
  1. Créez les fichiers comme décrit dans les Fichiers sections Structure de répertoire et de cette rubrique, puis téléchargez-les dans un compartiment d'entrée S3 ou dans un référentiel AWS CodeCommit GitHub, ou Bitbucket.

    Important

    Ne chargez pas (root directory name), mais seulement les fichiers à l'intérieur de (root directory name).

    Si vous utilisez un compartiment d'entrée S3, veillez à créer un fichier ZIP contenant les fichiers, puis chargez ce fichier dans le compartiment d'entrée. N'ajoutez pas (root directory name) au fichier ZIP, mais seulement les fichiers à l'intérieur de (root directory name).

  2. Créez un projet de build, exécutez le build et affichez les informations de build associées :

    1. Dans la section Environnement de la console, choisissez Configuration supplémentaire, accédez à Configuration du serveur Docker, puis sélectionnez Activer le serveur Docker pour ce projet. Vous pouvez ensuite choisir le type de calcul du serveur Docker et fournir un identifiant de registre.

    2. Si vous utilisez le AWS CLI pour créer le projet de génération, l' JSON-formatted entrée de la create-project commande peut ressembler à celle-ci. (Remplacez les espaces réservés par vos propres valeurs.)

      { "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" }
      Note

      Les groupes de sécurité configurés pour les serveurs Docker doivent autoriser le trafic réseau entrant depuis le VPC configuré dans le projet. Ils devraient autoriser l'entrée sur le port 9876.

  3. Pour voir les résultats de la génération, recherchez la chaîne Hello, World! dans le journal de la génération. Pour de plus amples informations, veuillez consulter Affichage des détails d'une génération.

Structure de répertoire

Cet exemple suppose que cette structure de répertoire est utilisée.

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

Fichiers

L'image de base du système d'exploitation utilisé dans cet exemple est Ubuntu. L'exemple utilise ces fichiers.

buildspec.yml (dans (root directory name))

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

Dockerfile (dans (root directory name))

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