You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							33 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							33 lines
						
					
					
						
							1.5 KiB
						
					
					
				
								# The cross-built images have the build arch (`amd64`) embedded in the image
							 | 
						|
								# manifest, rather than the target arch. For example:
							 | 
						|
								#
							 | 
						|
								#   $ docker inspect bitwardenrs/server:latest-armv7 | jq -r '.[]|.Architecture'
							 | 
						|
								#   amd64
							 | 
						|
								#
							 | 
						|
								# Recent versions of Docker have started printing a warning when the image's
							 | 
						|
								# claimed arch doesn't match the host arch. For example:
							 | 
						|
								#
							 | 
						|
								#   WARNING: The requested image's platform (linux/amd64) does not match the
							 | 
						|
								#   detected host platform (linux/arm/v7) and no specific platform was requested
							 | 
						|
								#
							 | 
						|
								# The image still works fine, but the spurious warning creates confusion.
							 | 
						|
								#
							 | 
						|
								# Docker doesn't seem to provide a way to directly set the arch of an image
							 | 
						|
								# at build time. To resolve the build vs. target arch discrepancy, we use
							 | 
						|
								# Docker Buildx to build a new set of images with the correct target arch.
							 | 
						|
								#
							 | 
						|
								# Docker Buildx uses this Dockerfile to build an image for each requested
							 | 
						|
								# platform. Since the Dockerfile basically consists of a single `FROM`
							 | 
						|
								# instruction, we're effectively telling Buildx to build a platform-specific
							 | 
						|
								# image by simply copying the existing cross-built image and setting the
							 | 
						|
								# correct target arch as a side effect.
							 | 
						|
								#
							 | 
						|
								# References:
							 | 
						|
								#
							 | 
						|
								# - https://docs.docker.com/buildx/working-with-buildx/#build-multi-platform-images
							 | 
						|
								# - https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
							 | 
						|
								# - https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
							 | 
						|
								#
							 | 
						|
								ARG LOCAL_REPO
							 | 
						|
								ARG DOCKER_TAG
							 | 
						|
								FROM ${LOCAL_REPO}:${DOCKER_TAG}-${TARGETARCH}${TARGETVARIANT}
							 | 
						|
								
							 |