Input path is now called context for consistency with other Docker build tools
path defaults to current git repository so checkout action is not required in a workflow
Rename dockerfile input to file for consistency with other Docker build tools
Rename always_pull input to pull for consistency with other Docker build tools
Add builder input to be able to choose a builder instance through our setup-buildx action
Add platforms input to support multi-platform builds
Add allow input
Add load input
Add outputs input
Add cache-from input (cache_froms removed)
Add cache-to input
Rename build_args input to build-args for consistency with other Docker build tools
Add secrets input
Review tags input
Remove repository input. See Simple workflow for migration
Remove username, password and registry inputs. Login support moved to docker/login-action repo
Remove tag_with_sha, tag_with_ref, add_git_labels inputs. See Tags with ref and Git labels for migration
Handle Git context
Add digest output
# v1
steps :
-
name : Checkout
uses : actions/checkout@v2
-
name : Build and push Docker images
uses : docker/build-push-action@v1
with :
username : ${{ secrets.DOCKER_USERNAME }}
password : ${{ secrets.DOCKER_PASSWORD }}
repository : myorg/myrepository
always_pull : true
build_args : arg1=value1,arg2=value2
cache_froms : myorg/myrepository:latest
tags : latest
# v2
steps :
-
name : Checkout
uses : actions/checkout@v2
-
name : Set up Docker Buildx
uses : docker/setup-buildx-action@v1
-
name : Login to DockerHub
uses : docker/login-action@v1
with :
username : ${{ secrets.DOCKER_USERNAME }}
password : ${{ secrets.DOCKER_PASSWORD }}
-
name : Build and push
uses : docker/build-push-action@v2
with :
context : .
pull : true
push : true
build-args : |
arg1=value1
arg2=value2
cache-from : type=registry,ref=myorg/myrepository:latest
cache-to : type=inline
tags : myorg/myrepository:latest
Tags with ref and Git labels
# v1
steps :
-
name : Checkout
uses : actions/checkout@v2
-
name : Build and push Docker images
uses : docker/build-push-action@v1
with :
username : ${{ secrets.DOCKER_USERNAME }}
password : ${{ secrets.DOCKER_PASSWORD }}
repository : myorg/myrepository
push : ${{ github.event_name != 'pull_request' }}
tag_with_ref : true
tag_with_sha : true
add_git_labels : true
# v2
steps :
-
name : Checkout
uses : actions/checkout@v2
-
name : Docker meta
id : meta
uses : docker/metadata-action@v3
with :
images : |
myorg/myrepository
tags : |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=sha
-
name : Set up Docker Buildx
uses : docker/setup-buildx-action@v1
-
name : Login to DockerHub
if : github.event_name != 'pull_request'
uses : docker/login-action@v1
with :
username : ${{ secrets.DOCKER_USERNAME }}
password : ${{ secrets.DOCKER_PASSWORD }}
-
name : Build and push
uses : docker/build-push-action@v2
with :
context : .
push : ${{ github.event_name != 'pull_request' }}
tags : ${{ steps.meta.outputs.tags }}
labels : ${{ steps.meta.outputs.labels }}