mirror of https://github.com/docker/docs.git
Merge pull request #20808 from dvdksn/gha-fix-variable-name
gha fix variable name
This commit is contained in:
commit
02a4a592ca
|
@ -1,163 +0,0 @@
|
||||||
This tutorial walks you through the process of setting up and using Docker GitHub
|
|
||||||
Actions for building Docker images, and pushing images to Docker Hub. You will
|
|
||||||
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 `DOCKER_USERNAME` and your Docker ID as value.
|
|
||||||
|
|
||||||
4. Create a new
|
|
||||||
[Personal Access Token (PAT)](/security/for-developers/access-tokens/#create-an-access-token)
|
|
||||||
for Docker Hub. You can name this token `clockboxci`.
|
|
||||||
|
|
||||||
5. Add the PAT 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!
|
|
|
@ -27,7 +27,7 @@ The following GitHub Actions are available:
|
||||||
installs [QEMU](https://github.com/qemu/qemu) static binaries for multi-arch
|
installs [QEMU](https://github.com/qemu/qemu) static binaries for multi-arch
|
||||||
builds.
|
builds.
|
||||||
- [Docker Buildx Bake](https://github.com/marketplace/actions/docker-buildx-bake):
|
- [Docker Buildx Bake](https://github.com/marketplace/actions/docker-buildx-bake):
|
||||||
enables using high-level builds with [Bake](../../bake/index.md).
|
enables using high-level builds with [Bake](../../bake/_index.md).
|
||||||
- [Docker Scout](https://github.com/docker/scout-action):
|
- [Docker Scout](https://github.com/docker/scout-action):
|
||||||
analyze Docker images for security vulnerabilities.
|
analyze Docker images for security vulnerabilities.
|
||||||
|
|
||||||
|
@ -44,6 +44,166 @@ refer to the following sections:
|
||||||
## Get started with GitHub Actions
|
## Get started with GitHub Actions
|
||||||
|
|
||||||
{{< include "gha-tutorial.md" >}}
|
{{< include "gha-tutorial.md" >}}
|
||||||
|
This tutorial walks you through the process of setting up and using Docker GitHub
|
||||||
|
Actions for building Docker images, and pushing images to Docker Hub. You will
|
||||||
|
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
|
## Next steps
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue