Merge pull request #104 from crazy-max/local-registry-example
Local registry example
This commit is contained in:
		
						commit
						b2462f3ff0
					
				
							
								
								
									
										40
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -18,11 +18,12 @@ jobs: | |||||||
|       matrix: |       matrix: | ||||||
|         buildx-version: |         buildx-version: | ||||||
|           - latest |           - latest | ||||||
|  |     services: | ||||||
|  |       registry: | ||||||
|  |         image: registry:2 | ||||||
|  |         ports: | ||||||
|  |           - 5000:5000 | ||||||
|     steps: |     steps: | ||||||
|       - |  | ||||||
|         name: Run local registry |  | ||||||
|         run: | |  | ||||||
|           docker run -d -p 5000:5000 registry:2 |  | ||||||
|       - |       - | ||||||
|         name: Checkout |         name: Checkout | ||||||
|         uses: actions/checkout@v2.3.1 |         uses: actions/checkout@v2.3.1 | ||||||
| @ -46,7 +47,6 @@ jobs: | |||||||
|           file: ./test/Dockerfile |           file: ./test/Dockerfile | ||||||
|           builder: ${{ steps.buildx.outputs.name }} |           builder: ${{ steps.buildx.outputs.name }} | ||||||
|           platforms: linux/amd64,linux/arm64 |           platforms: linux/amd64,linux/arm64 | ||||||
|           allow: network.host,security.insecure |  | ||||||
|           push: true |           push: true | ||||||
|           tags: | |           tags: | | ||||||
|             localhost:5000/name/app:latest |             localhost:5000/name/app:latest | ||||||
| @ -73,11 +73,12 @@ jobs: | |||||||
|         buildx-version: |         buildx-version: | ||||||
|           - "" |           - "" | ||||||
|           - latest |           - latest | ||||||
|  |     services: | ||||||
|  |       registry: | ||||||
|  |         image: registry:2 | ||||||
|  |         ports: | ||||||
|  |           - 5000:5000 | ||||||
|     steps: |     steps: | ||||||
|       - |  | ||||||
|         name: Run local registry |  | ||||||
|         run: | |  | ||||||
|           docker run -d -p 5000:5000 registry:2 |  | ||||||
|       - |       - | ||||||
|         name: Checkout |         name: Checkout | ||||||
|         uses: actions/checkout@v2.3.1 |         uses: actions/checkout@v2.3.1 | ||||||
| @ -101,7 +102,6 @@ jobs: | |||||||
|           context: ./test |           context: ./test | ||||||
|           file: ./test/Dockerfile |           file: ./test/Dockerfile | ||||||
|           builder: ${{ steps.buildx.outputs.name }} |           builder: ${{ steps.buildx.outputs.name }} | ||||||
|           allow: network.host,security.insecure |  | ||||||
|           push: true |           push: true | ||||||
|           tags: | |           tags: | | ||||||
|             localhost:5000/name/app:latest |             localhost:5000/name/app:latest | ||||||
| @ -129,11 +129,12 @@ jobs: | |||||||
|         dockerfile: |         dockerfile: | ||||||
|           - multi |           - multi | ||||||
|           - multi-sudo |           - multi-sudo | ||||||
|  |     services: | ||||||
|  |       registry: | ||||||
|  |         image: registry:2 | ||||||
|  |         ports: | ||||||
|  |           - 5000:5000 | ||||||
|     steps: |     steps: | ||||||
|       - |  | ||||||
|         name: Run local registry |  | ||||||
|         run: | |  | ||||||
|           docker run -d -p 5000:5000 registry:2 |  | ||||||
|       - |       - | ||||||
|         name: Checkout |         name: Checkout | ||||||
|         uses: actions/checkout@v2.3.1 |         uses: actions/checkout@v2.3.1 | ||||||
| @ -158,7 +159,6 @@ jobs: | |||||||
|           file: ./test/Dockerfile-${{ matrix.dockerfile }} |           file: ./test/Dockerfile-${{ matrix.dockerfile }} | ||||||
|           builder: ${{ steps.buildx.outputs.name }} |           builder: ${{ steps.buildx.outputs.name }} | ||||||
|           platforms: linux/amd64,linux/arm64 |           platforms: linux/amd64,linux/arm64 | ||||||
|           allow: network.host,security.insecure |  | ||||||
|           push: true |           push: true | ||||||
|           tags: | |           tags: | | ||||||
|             localhost:5000/name/app:latest |             localhost:5000/name/app:latest | ||||||
| @ -177,11 +177,12 @@ jobs: | |||||||
| 
 | 
 | ||||||
|   github-cache: |   github-cache: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|  |     services: | ||||||
|  |       registry: | ||||||
|  |         image: registry:2 | ||||||
|  |         ports: | ||||||
|  |           - 5000:5000 | ||||||
|     steps: |     steps: | ||||||
|       - |  | ||||||
|         name: Run local registry |  | ||||||
|         run: | |  | ||||||
|           docker run -d -p 5000:5000 registry:2 |  | ||||||
|       - |       - | ||||||
|         name: Checkout |         name: Checkout | ||||||
|         uses: actions/checkout@v2.3.1 |         uses: actions/checkout@v2.3.1 | ||||||
| @ -214,7 +215,6 @@ jobs: | |||||||
|           file: ./test/Dockerfile-multi-golang |           file: ./test/Dockerfile-multi-golang | ||||||
|           builder: ${{ steps.buildx.outputs.name }} |           builder: ${{ steps.buildx.outputs.name }} | ||||||
|           platforms: linux/amd64,linux/arm64 |           platforms: linux/amd64,linux/arm64 | ||||||
|           allow: network.host,security.insecure |  | ||||||
|           push: true |           push: true | ||||||
|           tags: | |           tags: | | ||||||
|             localhost:5000/name/app:latest |             localhost:5000/name/app:latest | ||||||
|  | |||||||
							
								
								
									
										66
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								README.md
									
									
									
									
									
								
							| @ -51,9 +51,11 @@ jobs: | |||||||
|   main: |   main: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
|  |       - | ||||||
|  |         name: Set up QEMU | ||||||
|  |         uses: docker/setup-qemu-action@master | ||||||
|       - |       - | ||||||
|         name: Set up Docker Buildx |         name: Set up Docker Buildx | ||||||
|         id: buildx |  | ||||||
|         uses: docker/setup-buildx-action@master |         uses: docker/setup-buildx-action@master | ||||||
|       - |       - | ||||||
|         name: Login to DockerHub |         name: Login to DockerHub | ||||||
| @ -66,7 +68,6 @@ jobs: | |||||||
|         id: docker_build |         id: docker_build | ||||||
|         uses: docker/build-push-action@v2 |         uses: docker/build-push-action@v2 | ||||||
|         with: |         with: | ||||||
|           builder: ${{ steps.buildx.outputs.name }} |  | ||||||
|           push: true |           push: true | ||||||
|           tags: user/app:latest |           tags: user/app:latest | ||||||
|       - |       - | ||||||
| @ -83,7 +84,6 @@ as a secret named `GIT_AUTH_TOKEN` to be able to authenticate against it with bu | |||||||
|         id: docker_build |         id: docker_build | ||||||
|         uses: docker/build-push-action@v2 |         uses: docker/build-push-action@v2 | ||||||
|         with: |         with: | ||||||
|           builder: ${{ steps.buildx.outputs.name }} |  | ||||||
|           push: true |           push: true | ||||||
|           tags: user/app:latest |           tags: user/app:latest | ||||||
|           secrets: | |           secrets: | | ||||||
| @ -111,14 +111,9 @@ jobs: | |||||||
|       - |       - | ||||||
|         name: Set up QEMU |         name: Set up QEMU | ||||||
|         uses: docker/setup-qemu-action@master |         uses: docker/setup-qemu-action@master | ||||||
|         with: |  | ||||||
|           platforms: all |  | ||||||
|       - |       - | ||||||
|         name: Set up Docker Buildx |         name: Set up Docker Buildx | ||||||
|         id: buildx |  | ||||||
|         uses: docker/setup-buildx-action@master |         uses: docker/setup-buildx-action@master | ||||||
|         with: |  | ||||||
|           version: latest |  | ||||||
|       - |       - | ||||||
|         name: Login to DockerHub |         name: Login to DockerHub | ||||||
|         uses: docker/login-action@v1 |         uses: docker/login-action@v1 | ||||||
| @ -129,7 +124,6 @@ jobs: | |||||||
|         name: Build and push |         name: Build and push | ||||||
|         uses: docker/build-push-action@v2 |         uses: docker/build-push-action@v2 | ||||||
|         with: |         with: | ||||||
|           builder: ${{ steps.buildx.outputs.name }} |  | ||||||
|           context: . |           context: . | ||||||
|           file: ./Dockerfile |           file: ./Dockerfile | ||||||
|           platforms: linux/amd64,linux/arm64,linux/386 |           platforms: linux/amd64,linux/arm64,linux/386 | ||||||
| @ -195,11 +189,8 @@ jobs: | |||||||
|       - |       - | ||||||
|         name: Set up QEMU |         name: Set up QEMU | ||||||
|         uses: docker/setup-qemu-action@master |         uses: docker/setup-qemu-action@master | ||||||
|         with: |  | ||||||
|           platforms: all |  | ||||||
|       - |       - | ||||||
|         name: Set up Docker Buildx |         name: Set up Docker Buildx | ||||||
|         id: buildx |  | ||||||
|         uses: docker/setup-buildx-action@master |         uses: docker/setup-buildx-action@master | ||||||
|       - |       - | ||||||
|         name: Login to DockerHub |         name: Login to DockerHub | ||||||
| @ -211,7 +202,6 @@ jobs: | |||||||
|         name: Build and push |         name: Build and push | ||||||
|         uses: docker/build-push-action@v2 |         uses: docker/build-push-action@v2 | ||||||
|         with: |         with: | ||||||
|           builder: ${{ steps.buildx.outputs.name }} |  | ||||||
|           context: . |           context: . | ||||||
|           file: ./Dockerfile |           file: ./Dockerfile | ||||||
|           platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x |           platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x | ||||||
| @ -221,6 +211,46 @@ jobs: | |||||||
|             user/app:1.0.0 |             user/app:1.0.0 | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  | ### Local registry | ||||||
|  | 
 | ||||||
|  | For testing purposes you may need to create a [local registry](https://hub.docker.com/_/registry) to push images into. | ||||||
|  | 
 | ||||||
|  | ```yaml | ||||||
|  | name: ci | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: master | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   local-registry: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     services: | ||||||
|  |       registry: | ||||||
|  |         image: registry:2 | ||||||
|  |         ports: | ||||||
|  |           - 5000:5000 | ||||||
|  |     steps: | ||||||
|  |       - | ||||||
|  |         name: Set up QEMU | ||||||
|  |         uses: docker/setup-qemu-action@master | ||||||
|  |       - | ||||||
|  |         name: Set up Docker Buildx | ||||||
|  |         uses: docker/setup-buildx-action@master | ||||||
|  |         with: | ||||||
|  |           driver-opts: network=host | ||||||
|  |       - | ||||||
|  |         name: Build and push to local registry | ||||||
|  |         uses: docker/build-push-action@v2 | ||||||
|  |         with: | ||||||
|  |           push: true | ||||||
|  |           tags: localhost:5000/name/app:latest | ||||||
|  |       - | ||||||
|  |         name: Inspect | ||||||
|  |         run: | | ||||||
|  |           docker buildx imagetools inspect localhost:5000/name/app:latest | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
| ### Leverage GitHub cache | ### Leverage GitHub cache | ||||||
| 
 | 
 | ||||||
| You can leverage [GitHub cache](https://docs.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows) | You can leverage [GitHub cache](https://docs.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows) | ||||||
| @ -239,7 +269,6 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|       - |       - | ||||||
|         name: Set up Docker Buildx |         name: Set up Docker Buildx | ||||||
|         id: buildx |  | ||||||
|         uses: docker/setup-buildx-action@master |         uses: docker/setup-buildx-action@master | ||||||
|       - |       - | ||||||
|         name: Cache Docker layers |         name: Cache Docker layers | ||||||
| @ -257,17 +286,12 @@ jobs: | |||||||
|           password: ${{ secrets.DOCKER_PASSWORD }} |           password: ${{ secrets.DOCKER_PASSWORD }} | ||||||
|       - |       - | ||||||
|         name: Build and push |         name: Build and push | ||||||
|         id: docker_build |  | ||||||
|         uses: docker/build-push-action@v2 |         uses: docker/build-push-action@v2 | ||||||
|         with: |         with: | ||||||
|           builder: ${{ steps.buildx.outputs.name }} |  | ||||||
|           push: true |           push: true | ||||||
|           tags: user/app:latest |           tags: user/app:latest | ||||||
|           cache-from: type=local,src=/tmp/.buildx-cache |           cache-from: type=local,src=/tmp/.buildx-cache | ||||||
|           cache-to: type=local,dest=/tmp/.buildx-cache |           cache-to: type=local,dest=/tmp/.buildx-cache | ||||||
|       - |  | ||||||
|         name: Image digest |  | ||||||
|         run: echo ${{ steps.docker_build.outputs.digest }} |  | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ### Complete workflow | ### Complete workflow | ||||||
| @ -317,11 +341,8 @@ jobs: | |||||||
|       - |       - | ||||||
|         name: Set up QEMU |         name: Set up QEMU | ||||||
|         uses: docker/setup-qemu-action@master |         uses: docker/setup-qemu-action@master | ||||||
|         with: |  | ||||||
|           platforms: all |  | ||||||
|       - |       - | ||||||
|         name: Set up Docker Buildx |         name: Set up Docker Buildx | ||||||
|         id: buildx |  | ||||||
|         uses: docker/setup-buildx-action@master |         uses: docker/setup-buildx-action@master | ||||||
|       - |       - | ||||||
|         name: Login to DockerHub |         name: Login to DockerHub | ||||||
| @ -335,7 +356,6 @@ jobs: | |||||||
|         id: docker_build |         id: docker_build | ||||||
|         uses: docker/build-push-action@v2 |         uses: docker/build-push-action@v2 | ||||||
|         with: |         with: | ||||||
|           builder: ${{ steps.buildx.outputs.name }} |  | ||||||
|           context: . |           context: . | ||||||
|           file: ./Dockerfile |           file: ./Dockerfile | ||||||
|           platforms: linux/amd64,linux/arm64,linux/386 |           platforms: linux/amd64,linux/arm64,linux/386 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user