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