Merge pull request #455 from crazy-max/doc
Test before pushing your image (docs)
This commit is contained in:
		
						commit
						d0931a71a9
					
				@ -36,6 +36,7 @@ ___
 | 
				
			|||||||
  * [Local registry](docs/advanced/local-registry.md)
 | 
					  * [Local registry](docs/advanced/local-registry.md)
 | 
				
			||||||
  * [Export image to Docker](docs/advanced/export-docker.md)
 | 
					  * [Export image to Docker](docs/advanced/export-docker.md)
 | 
				
			||||||
  * [Share built image between jobs](docs/advanced/share-image-jobs.md)
 | 
					  * [Share built image between jobs](docs/advanced/share-image-jobs.md)
 | 
				
			||||||
 | 
					  * [Test your image before pushing it](docs/advanced/test-before-push.md)
 | 
				
			||||||
  * [Handle tags and labels](docs/advanced/tags-labels.md)
 | 
					  * [Handle tags and labels](docs/advanced/tags-labels.md)
 | 
				
			||||||
  * [Update DockerHub repo description](docs/advanced/dockerhub-desc.md)
 | 
					  * [Update DockerHub repo description](docs/advanced/dockerhub-desc.md)
 | 
				
			||||||
* [Customizing](#customizing)
 | 
					* [Customizing](#customizing)
 | 
				
			||||||
@ -165,6 +166,7 @@ jobs:
 | 
				
			|||||||
* [Local registry](docs/advanced/local-registry.md)
 | 
					* [Local registry](docs/advanced/local-registry.md)
 | 
				
			||||||
* [Export image to Docker](docs/advanced/export-docker.md)
 | 
					* [Export image to Docker](docs/advanced/export-docker.md)
 | 
				
			||||||
* [Share built image between jobs](docs/advanced/share-image-jobs.md)
 | 
					* [Share built image between jobs](docs/advanced/share-image-jobs.md)
 | 
				
			||||||
 | 
					* [Test your image before pushing it](docs/advanced/test-before-push.md)
 | 
				
			||||||
* [Handle tags and labels](docs/advanced/tags-labels.md)
 | 
					* [Handle tags and labels](docs/advanced/tags-labels.md)
 | 
				
			||||||
* [Update DockerHub repo description](docs/advanced/dockerhub-desc.md)
 | 
					* [Update DockerHub repo description](docs/advanced/dockerhub-desc.md)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										64
									
								
								docs/advanced/test-before-push.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								docs/advanced/test-before-push.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					# Test your image before pushing it
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In some cases, you might want to validate that the image works as expected
 | 
				
			||||||
 | 
					before pushing it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The workflow below will be composed of several steps to achieve this:
 | 
				
			||||||
 | 
					* Build and export the image to Docker
 | 
				
			||||||
 | 
					* Test your image
 | 
				
			||||||
 | 
					* Multi-platform build and push the image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					name: ci
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches:
 | 
				
			||||||
 | 
					      - 'master'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					env:
 | 
				
			||||||
 | 
					  TEST_TAG: user/myapp:test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  docker:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Checkout
 | 
				
			||||||
 | 
					        uses: actions/checkout@v2
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Set up QEMU
 | 
				
			||||||
 | 
					        uses: docker/setup-qemu-action@v1
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Set up Docker Buildx
 | 
				
			||||||
 | 
					        uses: docker/setup-buildx-action@v1
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Login to DockerHub
 | 
				
			||||||
 | 
					        uses: docker/login-action@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          username: ${{ secrets.DOCKERHUB_USERNAME }}
 | 
				
			||||||
 | 
					          password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Build and export to Docker
 | 
				
			||||||
 | 
					        uses: docker/build-push-action@v2
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          context: .
 | 
				
			||||||
 | 
					          load: true
 | 
				
			||||||
 | 
					          tags: ${{ env.TEST_TAG }}
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Test
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          docker run --rm ${{ env.TEST_TAG }}
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: Build and push
 | 
				
			||||||
 | 
					        uses: docker/build-push-action@v2
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          context: .
 | 
				
			||||||
 | 
					          platforms: linux/amd64,linux/arm64
 | 
				
			||||||
 | 
					          push: true
 | 
				
			||||||
 | 
					          tags: user/app:latest
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> :bulb: Build time will not be increased with this workflow because internal
 | 
				
			||||||
 | 
					> cache for `linux/amd64` will be used from previous step on `Build and push`
 | 
				
			||||||
 | 
					> step so only `linux/arm64` will be actually built.
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user