

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Beispiel für einen Docker-Image-Build-Server für CodeBuild
<a name="sample-docker-server"></a>

Im folgenden Beispiel werden Ihre Docker-Builds auf einen verwalteten Image-Build-Server ausgelagert. Sie können dieses Beispiel anpassen, um einen dedizierten und verwalteten Docker-Image-Build-Server in Ihrer CodeBuild Projektkonfiguration bereitzustellen. Beachten Sie, dass die bereitgestellte Instanz aktiv ist, solange Builds für das Projekt aktiv ausgeführt werden, und dass die Instanz gestoppt wird, wenn Builds nicht ausgeführt werden. Die bereitgestellte Instanz wird bis zu einem Monat gespeichert, bevor sie recycelt wird. Weitere Informationen finden Sie unter [ CodeBuild Docker Server Capability](https://aws.amazon.com/blogs//aws/accelerate-ci-cd-pipelines-with-the-new-aws-codebuild-docker-server-capability).

**Wichtig**  
Die Ausführung dieses Beispiels kann zu Gebühren für Ihr AWS Konto führen. Dazu gehören mögliche Gebühren für CodeBuild und für AWS Ressourcen und Aktionen im Zusammenhang mit Amazon S3 und CloudWatch Logs. AWS KMS Weitere Informationen finden Sie unter [CodeBuild Preise](https://aws.amazon.com/codebuild/pricing), [Amazon S3 S3-Preise](https://aws.amazon.com/s3/pricing), [AWS Key Management Service Preise](https://aws.amazon.com/kms/pricing) und [ CloudWatchAmazon-Preise](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [Konfigurieren Sie einen Docker-Server](#sample-docker-server-running)

## Konfigurieren Sie einen Docker-Server
<a name="sample-docker-server-running"></a>

Gehen Sie wie folgt vor, um eine dedizierte Rechenumgebung für ein CodeBuild Projekt bereitzustellen, das Docker-Workloads verwaltet und Docker-Image-Ebenen speichert. 

**Um einen Docker-Server zu konfigurieren**

1. Erstellen Sie die Dateien wie in den [Dateien](#sample-docker-server-files) Abschnitten [Verzeichnisstruktur](#sample-docker-server-dir) und in diesem Thema beschrieben und laden Sie sie dann in einen S3-Eingabe-Bucket oder ein AWS CodeCommit, GitHub, oder Bitbucket-Repository hoch. 
**Wichtig**  
Laden Sie nicht `(root directory name)` hoch, sondern nur die Dateien in `(root directory name)`.   
Wenn Sie einen S3-Empfangs-Bucket verwenden, sollten Sie eine ZIP-Datei erstellen, die die Dateien enthält, und diese dann in den Empfangs-Bucket hochladen. Fügen Sie `(root directory name)` nicht zur ZIP-Datei hinzu, sondern nur die Dateien in `(root directory name)`.

1. Erstelle ein Build-Projekt, führe den Build aus und sieh dir die zugehörigen Build-Informationen an:

   1. Wählen Sie im Bereich **Umgebung** der Konsole **Zusätzliche Konfiguration** aus, navigieren Sie zu **Docker-Serverkonfiguration** und wählen Sie dann **Docker-Server für dieses Projekt aktivieren** aus. **Sie können dann den **Compute-Typ des Docker-Servers** auswählen und einen Registrierungsnachweis angeben.**

   1. Wenn Sie das AWS CLI Build-Projekt mit erstellen, sieht die Eingabe des `create-project` Befehls im JSON-Format möglicherweise ähnlich aus. (Ersetzen Sie die Platzhalter durch Ihre eigenen Werte.)

      ```
      {
        "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"
      }
      ```
**Anmerkung**  
Für Docker-Server konfigurierte Sicherheitsgruppen sollten eingehenden Netzwerkverkehr von der im Projekt konfigurierten VPC zulassen. Sie sollten den Zugriff auf Port 9876 zulassen.

1. Zum Anzeigen der Build-Ergebnisse sehen Sie sich die Zeichenfolge `Hello, World!` im Build-Protokoll an. Weitere Informationen finden Sie unter [Anzeigen von Build-Details](view-build-details.md).

### Verzeichnisstruktur
<a name="sample-docker-server-dir"></a>

In diesem Beispiel wird von dieser Verzeichnisstruktur ausgegangen.

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

### Dateien
<a name="sample-docker-server-files"></a>

Die Basis-Image des Betriebssystems in diesem Beispiel ist Ubuntu. Das Beispiel verwendet diese Dateien.

`buildspec.yml` (in `(root directory name)`)

```
version: 0.2

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

`Dockerfile` (in `(root directory name)`)

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