Added chages & cron job
	
		
			
	
		
	
	
		
			
				
	
				ci/woodpecker/manual/woodpecker Pipeline was successful
				
					Details
				
			
		
	
				
					
				
			
				
	
				ci/woodpecker/manual/woodpecker Pipeline was successful
				
					Details
				
			
		
	
							parent
							
								
									b0a6e227f0
								
							
						
					
					
						commit
						b76a5ce8d2
					
				| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
platform: 'linux/amd64'
 | 
			
		||||
branches: [main]
 | 
			
		||||
 | 
			
		||||
pipeline:
 | 
			
		||||
  build:
 | 
			
		||||
    image: 'woodpeckerci/plugin-docker-buildx'
 | 
			
		||||
    secrets: 
 | 
			
		||||
      - 'docker_username'
 | 
			
		||||
      - 'docker_password'
 | 
			
		||||
    settings:
 | 
			
		||||
      repo: 'git.rustybever.be/vieter-v/vieter-builder'
 | 
			
		||||
      tags:
 | 
			
		||||
        - 'latest'
 | 
			
		||||
      platforms: [ 'linux/arm64/v8', 'linux/amd64' ]
 | 
			
		||||
    when:
 | 
			
		||||
      event: cron
 | 
			
		||||
							
								
								
									
										11
									
								
								Dockerfile
								
								
								
								
							
							
						
						
									
										11
									
								
								Dockerfile
								
								
								
								
							| 
						 | 
				
			
			@ -1,6 +1,5 @@
 | 
			
		|||
FROM alpine:3.15 AS bootstrapper
 | 
			
		||||
ARG TARGETARCH
 | 
			
		||||
ARG PACKAGE_GROUP=base
 | 
			
		||||
COPY files /files
 | 
			
		||||
RUN \
 | 
			
		||||
	apk add arch-install-scripts pacman-makepkg curl && \
 | 
			
		||||
| 
						 | 
				
			
			@ -20,7 +19,7 @@ RUN \
 | 
			
		|||
	pacman-key --init && \
 | 
			
		||||
	pacman-key --populate && \
 | 
			
		||||
	mkdir /rootfs && \
 | 
			
		||||
	/files/pacstrap-docker /rootfs $PACKAGE_GROUP && \
 | 
			
		||||
	/files/pacstrap-docker /rootfs base-devel clang git && \
 | 
			
		||||
	cp /etc/pacman.d/mirrorlist /rootfs/etc/pacman.d/mirrorlist && \
 | 
			
		||||
	echo "en_US.UTF-8 UTF-8" > /rootfs/etc/locale.gen && \
 | 
			
		||||
	echo "LANG=en_US.UTF-8" > /rootfs/etc/locale.conf && \
 | 
			
		||||
| 
						 | 
				
			
			@ -29,11 +28,15 @@ RUN \
 | 
			
		|||
 | 
			
		||||
FROM scratch
 | 
			
		||||
COPY --from=bootstrapper /rootfs/ /
 | 
			
		||||
ENV LANG=en_US.UTF-8
 | 
			
		||||
ENV LANG=en_US.UTF-8 \
 | 
			
		||||
    CC=clang \
 | 
			
		||||
    CXX=clang++
 | 
			
		||||
RUN \
 | 
			
		||||
	ln -sf /usr/lib/os-release /etc/os-release && \
 | 
			
		||||
	pacman-key --init && \
 | 
			
		||||
	pacman-key --populate && \
 | 
			
		||||
	rm -rf /etc/pacman.d/gnupg/{openpgp-revocs.d/,private-keys-v1.d/,pubring.gpg~,gnupg.S.}*
 | 
			
		||||
	rm -rf /etc/pacman.d/gnupg/{openpgp-revocs.d/,private-keys-v1.d/,pubring.gpg~,gnupg.S.}* && \
 | 
			
		||||
    # Enable LTO by default \
 | 
			
		||||
    sed -i 's/!lto/lto/' /etc/makepkg.conf
 | 
			
		||||
 | 
			
		||||
CMD ["/usr/bin/bash"]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								LICENSE
								
								
								
								
							
							
						
						
									
										2
									
								
								LICENSE
								
								
								
								
							| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2021 Menci
 | 
			
		||||
Copyright (c) 2022 Jef Roosens
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										23
									
								
								README.md
								
								
								
								
							
							
						
						
									
										23
									
								
								README.md
								
								
								
								
							| 
						 | 
				
			
			@ -1,18 +1,9 @@
 | 
			
		|||
# Arch Linux Docker Image (Multiarch)
 | 
			
		||||
# Vieter builder image
 | 
			
		||||
 | 
			
		||||
[](https://github.com/Menci/docker-archlinuxarm/actions/workflows/build.yaml)
 | 
			
		||||
This repo is a fork of
 | 
			
		||||
[Menci/docker-archlinuxarm](https://github.com/Menci/docker-archlinuxarm),
 | 
			
		||||
meant as a way for me to configure my build images a bit better. In specific, I
 | 
			
		||||
added the following changes:
 | 
			
		||||
 | 
			
		||||
This is the Docker image for Arch Linux ARM but for compatibility AMD64 build is also included. All images are built on GitHub Actions automatically.
 | 
			
		||||
 | 
			
		||||
Just just like the official Arch Linux AMD64 image, it has two tags:
 | 
			
		||||
 | 
			
		||||
* `base` (default): installed only the package group `base`.
 | 
			
		||||
* `base-devel`: installed the package group `base-devel`.
 | 
			
		||||
 | 
			
		||||
And, the pamcan lsign-key is also removed for [security reasons](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/blob/bc4d9f8ec5bdcbedefc96a2a1beaf33f01c07812/README.md#principles).
 | 
			
		||||
 | 
			
		||||
# Under the Hood
 | 
			
		||||
 | 
			
		||||
The Dockerfile uses a Alpine Linux container to install `pacman` and bootstrap the Arch Linux ARM rootfs. Since `pacstrap` uses `mount`, it doesn't run in an unprivileged Docker container. I found the tool [`pacstrap-docker`](https://github.com/lopsided98/archlinux-docker/blob/d5a80b90aea37eee43bcc7efeaea69880a4aada7/pacstrap-docker) ([LICENSE](https://github.com/lopsided98/archlinux-docker/blob/d5a80b90aea37eee43bcc7efeaea69880a4aada7/LICENSE)) as a replacement.
 | 
			
		||||
 | 
			
		||||
After bootstrapping, the rootfs will be copied to a new container from `scratch` (aka. an empty file system), which will be commited as the result image.
 | 
			
		||||
* Enable LTO by default
 | 
			
		||||
* Use clang as the default compiler
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue