mirror of https://github.com/docker/docs.git
				
				
				
			build: dedup gha introduction content
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									f37633abac
								
							
						
					
					
						commit
						c0719dc427
					
				|  | @ -43,172 +43,6 @@ refer to the following sections: | ||||||
| 
 | 
 | ||||||
| ## Get started with GitHub Actions | ## Get started with GitHub Actions | ||||||
| 
 | 
 | ||||||
| {{< include "gha-tutorial.md" >}} | The [Introduction to GitHub Actions with Docker](/guides/gha.md) guide walks | ||||||
| This tutorial walks you through the process of setting up and using Docker GitHub | you through the process of setting up and using Docker GitHub Actions for | ||||||
| Actions for building Docker images, and pushing images to Docker Hub. You will | building Docker images, and pushing images to Docker Hub. | ||||||
| complete the following steps: |  | ||||||
| 
 |  | ||||||
| 1. Create a new repository on GitHub. |  | ||||||
| 2. Define the GitHub Actions workflow. |  | ||||||
| 3. Run the workflow. |  | ||||||
| 
 |  | ||||||
| To follow this tutorial, you need a Docker ID and a GitHub account. |  | ||||||
| 
 |  | ||||||
| ### Step one: Create the repository |  | ||||||
| 
 |  | ||||||
| Create a GitHub repository and configure the Docker Hub credentials. |  | ||||||
| 
 |  | ||||||
| 1. Create a new GitHub repository using |  | ||||||
|    [this template repository](https://github.com/dvdksn/clockbox/generate). |  | ||||||
| 
 |  | ||||||
|    The repository contains a simple Dockerfile, and nothing else. Feel free to |  | ||||||
|    use another repository containing a working Dockerfile if you prefer. |  | ||||||
| 
 |  | ||||||
| 2. Open the repository **Settings**, and go to **Secrets and variables** > **Actions**. |  | ||||||
| 
 |  | ||||||
| 3. Create a new **Repository variable** named `DOCKERHUB_USERNAME` and your Docker ID as value. |  | ||||||
| 
 |  | ||||||
| 4. Create a new |  | ||||||
|    [personal access token](/security/for-developers/access-tokens/#create-an-access-token) |  | ||||||
|    for Docker Hub. You can name this token `clockboxci`. |  | ||||||
| 
 |  | ||||||
| 5. Add the Docker Hub access token as a **Repository secret** in your GitHub repository, with the name |  | ||||||
|    `DOCKERHUB_TOKEN`. |  | ||||||
| 
 |  | ||||||
| With your repository created, and credentials configured, you're now ready for |  | ||||||
| action. |  | ||||||
| 
 |  | ||||||
| ### Step two: Set up the workflow |  | ||||||
| 
 |  | ||||||
| Set up your GitHub Actions workflow for building and pushing the image to Docker |  | ||||||
| Hub. |  | ||||||
| 
 |  | ||||||
| 1. Go to your repository on GitHub and then select the **Actions** tab. |  | ||||||
| 2. Select **set up a workflow yourself**. |  | ||||||
| 
 |  | ||||||
|    This takes you to a page for creating a new GitHub actions workflow file in |  | ||||||
|    your repository, under `.github/workflows/main.yml` by default. |  | ||||||
| 
 |  | ||||||
| 3. In the editor window, copy and paste the following YAML configuration. |  | ||||||
| 
 |  | ||||||
|    ```yaml |  | ||||||
|    name: ci |  | ||||||
| 
 |  | ||||||
|    on: |  | ||||||
|      push: |  | ||||||
|        branches: |  | ||||||
|          - "main" |  | ||||||
| 
 |  | ||||||
|    jobs: |  | ||||||
|      build: |  | ||||||
|        runs-on: ubuntu-latest |  | ||||||
|    ``` |  | ||||||
| 
 |  | ||||||
|    - `name`: the name of this workflow. |  | ||||||
|    - `on.push.branches`: specifies that this workflow should run on every push |  | ||||||
|      event for the branches in the list. |  | ||||||
|    - `jobs`: creates a job ID (`build`) and declares the type of machine that |  | ||||||
|      the job should run on. |  | ||||||
| 
 |  | ||||||
| For more information about the YAML syntax used here, see |  | ||||||
| [Workflow syntax for GitHub Actions](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions). |  | ||||||
| 
 |  | ||||||
| ### Step three: Define the workflow steps |  | ||||||
| 
 |  | ||||||
| Now the essentials: what steps to run, and in what order to run them. |  | ||||||
| 
 |  | ||||||
| ```yaml |  | ||||||
| jobs: |  | ||||||
|   build: |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|       - name: Login to Docker Hub |  | ||||||
|         uses: docker/login-action@v3 |  | ||||||
|         with: |  | ||||||
|           username: ${{ vars.DOCKERHUB_USERNAME }} |  | ||||||
|           password: ${{ secrets.DOCKERHUB_TOKEN }} |  | ||||||
| 
 |  | ||||||
|       - name: Set up Docker Buildx |  | ||||||
|         uses: docker/setup-buildx-action@v3 |  | ||||||
| 
 |  | ||||||
|       - name: Build and push |  | ||||||
|         uses: docker/build-push-action@v6 |  | ||||||
|         with: |  | ||||||
|           push: true |  | ||||||
|           tags: ${{ vars.DOCKERHUB_USERNAME }}/clockbox:latest |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| The previous YAML snippet contains a sequence of steps that: |  | ||||||
| 
 |  | ||||||
| 1. Signs in to Docker Hub, using the |  | ||||||
|    [Docker Login](https://github.com/marketplace/actions/docker-login) action and your Docker Hub credentials. |  | ||||||
| 2. Creates a BuildKit builder instance using the |  | ||||||
|    [Docker Setup Buildx](https://github.com/marketplace/actions/docker-setup-buildx) action. |  | ||||||
| 3. Builds the container image and pushes it to the Docker Hub repository, using |  | ||||||
|    [Build and push Docker images](https://github.com/marketplace/actions/build-and-push-docker-images). |  | ||||||
| 
 |  | ||||||
|    The `with` key lists a number of input parameters that configures the step: |  | ||||||
| 
 |  | ||||||
|    - `push`: tells the action to upload the image to a registry after building |  | ||||||
|      it. |  | ||||||
|    - `tags`: tags that specify where to push the image. |  | ||||||
| 
 |  | ||||||
| Add these steps to your workflow file. The full workflow configuration should |  | ||||||
| look as follows: |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ```yaml |  | ||||||
| name: ci |  | ||||||
| 
 |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|       - "main" |  | ||||||
| 
 |  | ||||||
| jobs: |  | ||||||
|   build: |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|       - name: Login to Docker Hub |  | ||||||
|         uses: docker/login-action@v3 |  | ||||||
|         with: |  | ||||||
|           username: ${{ vars.DOCKERHUB_USERNAME }} |  | ||||||
|           password: ${{ secrets.DOCKERHUB_TOKEN }} |  | ||||||
| 
 |  | ||||||
|       - name: Set up Docker Buildx |  | ||||||
|         uses: docker/setup-buildx-action@v3 |  | ||||||
| 
 |  | ||||||
|       - name: Build and push |  | ||||||
|         uses: docker/build-push-action@v6 |  | ||||||
|         with: |  | ||||||
|           push: true |  | ||||||
|           tags: ${{ vars.DOCKERHUB_USERNAME }}/clockbox:latest |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| ### Run the workflow |  | ||||||
| 
 |  | ||||||
| Save the workflow file and run the job. |  | ||||||
| 
 |  | ||||||
| 1. Select **Commit changes...** and push the changes to the `main` branch. |  | ||||||
| 
 |  | ||||||
|    After pushing the commit, the workflow starts automatically. |  | ||||||
| 
 |  | ||||||
| 2. Go to the **Actions** tab. It displays the workflow. |  | ||||||
| 
 |  | ||||||
|    Selecting the workflow shows you the breakdown of all the steps. |  | ||||||
| 
 |  | ||||||
| 3. When the workflow is complete, go to your |  | ||||||
|    [repositories on Docker Hub](https://hub.docker.com/repositories). |  | ||||||
| 
 |  | ||||||
|    If you see the new repository in that list, it means the GitHub Actions |  | ||||||
|    successfully pushed the image to Docker Hub. |  | ||||||
| 
 |  | ||||||
| ## Next steps |  | ||||||
| 
 |  | ||||||
| This tutorial has shown you how to create a simple GitHub Actions workflow, |  | ||||||
| using the official Docker actions, to build and push an image to Docker Hub. |  | ||||||
| 
 |  | ||||||
| There are many more things you can do to customize your workflow to better suit |  | ||||||
| your needs. To learn more about some of the more advanced use cases, take a look |  | ||||||
| at the advanced examples, such as [building multi-platform images](multi-platform.md), |  | ||||||
| or [using cache storage backends](cache.md) and also how to [configure your builder](configure-builder.md). |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue