| 
									
										
										
										
											2023-11-27 14:40:15 +01:00
										 |  |  | from golang:1.21.4-alpine3.18 as build
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | workdir /src
 | 
					
						
							|  |  |  | copy go.mod go.sum .
 | 
					
						
							|  |  |  | run go mod download
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | copy . .
 | 
					
						
							|  |  |  | run go test ./...
 | 
					
						
							|  |  |  | run go build -o /go/bin/init -trimpath .
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # ------------------------------------------------------------------------
 | 
					
						
							| 
									
										
										
										
											2023-12-17 14:28:32 +01:00
										 |  |  | from alpine:3.18.4 as initrd
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | run apk add --no-cache xz
 | 
					
						
							| 
									
										
										
										
											2023-11-27 14:40:15 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | workdir /layer
 | 
					
						
							|  |  |  | run wget -O- https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/x86_64/alpine-minirootfs-3.18.4-x86_64.tar.gz |tar zxv
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | run apk add --no-cache -p . musl lvm2 lvm2-dmeventd udev cryptsetup e2fsprogs btrfs-progs lsblk
 | 
					
						
							|  |  |  | run rm -rf usr/share/apk var/cache/apk
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | copy --from=build /go/bin/init .
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # check viability
 | 
					
						
							|  |  |  | run chroot /layer /init hello
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-17 14:28:32 +01:00
										 |  |  | run find |cpio -H newc -o >/initrd
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # ------------------------------------------------------------------------
 | 
					
						
							|  |  |  | from alpine:3.18.4
 | 
					
						
							|  |  |  | copy --from=initrd /initrd /
 | 
					
						
							|  |  |  | entrypoint ["base64","/initrd"]
 |