Initial working concept for aarch64
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
FROM omarchy-alarm-base:latest
|
||||
|
||||
RUN pacman-key --init && \
|
||||
pacman-key --populate archlinuxarm
|
||||
|
||||
RUN pacman -Syu --noconfirm && \
|
||||
pacman -S --noconfirm base-devel git sudo wget jq gnupg
|
||||
|
||||
RUN pacman-key --recv-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 --keyserver keys.openpgp.org && \
|
||||
pacman-key --lsign-key 40DFB630FF42BCFFB047046CF0134EE680CAC571
|
||||
|
||||
RUN useradd -m -G wheel builder && \
|
||||
echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
||||
|
||||
USER builder
|
||||
WORKDIR /src
|
||||
|
||||
RUN mkdir -p ~/.gnupg && chmod 700 ~/.gnupg
|
||||
|
||||
CMD ["/build/build.sh"]
|
||||
@@ -0,0 +1,7 @@
|
||||
FROM scratch
|
||||
|
||||
ADD ArchLinuxARM-aarch64-latest.tar.gz /
|
||||
|
||||
ENV LANG=en_US.UTF-8
|
||||
|
||||
CMD ["/usr/bin/bash"]
|
||||
@@ -0,0 +1,51 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
fx6y8+A0kBiaAmcY01U/upYXeHs=
|
||||
=AIgD
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
Executable
+99
@@ -0,0 +1,99 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
BUILD_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
|
||||
source "$BUILD_ROOT/helpers/message-helpers.sh"
|
||||
|
||||
TARBALL_URL="http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz"
|
||||
TARBALL_MD5_URL="http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz.md5"
|
||||
TARBALL_SIG_URL="http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz.sig"
|
||||
ALARM_KEY_ID="68B3537F39A313B3E574D06777193F152BDBE6A6"
|
||||
|
||||
TARBALL_FILE="$SCRIPT_DIR/ArchLinuxARM-aarch64-latest.tar.gz"
|
||||
MD5_FILE="$SCRIPT_DIR/ArchLinuxARM-aarch64-latest.tar.gz.md5"
|
||||
SIG_FILE="$SCRIPT_DIR/ArchLinuxARM-aarch64-latest.tar.gz.sig"
|
||||
|
||||
print_header "Arch Linux ARM Bootstrap"
|
||||
|
||||
print_info "This will create the omarchy-alarm-base:latest Docker image"
|
||||
print_info "Source: https://archlinuxarm.org/platforms/armv8/generic"
|
||||
echo ""
|
||||
|
||||
if docker images | grep -q "omarchy-alarm-base.*latest"; then
|
||||
print_warning "Image omarchy-alarm-base:latest already exists"
|
||||
read -p "Rebuild it? (y/N): " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
print_info "Skipping bootstrap"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
print_info "Downloading ALARM aarch64 tarball (~450MB)..."
|
||||
if [[ -f "$TARBALL_FILE" ]]; then
|
||||
print_info "Tarball already exists, skipping download"
|
||||
else
|
||||
wget -O "$TARBALL_FILE" "$TARBALL_URL"
|
||||
fi
|
||||
|
||||
print_info "Downloading checksum and signature..."
|
||||
wget -O "$MD5_FILE" "$TARBALL_MD5_URL" || true
|
||||
wget -O "$SIG_FILE" "$TARBALL_SIG_URL" || true
|
||||
|
||||
if [[ -f "$MD5_FILE" ]]; then
|
||||
print_info "Verifying MD5 checksum..."
|
||||
if md5sum -c "$MD5_FILE"; then
|
||||
print_success "✓ MD5 checksum verified"
|
||||
else
|
||||
print_error "MD5 checksum verification failed"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -f "$SIG_FILE" ]]; then
|
||||
print_info "Verifying GPG signature..."
|
||||
|
||||
if ! gpg --list-keys "$ALARM_KEY_ID" &>/dev/null; then
|
||||
print_info "Importing ALARM signing key..."
|
||||
if [[ -f "$SCRIPT_DIR/alarm-signing-key.asc" ]]; then
|
||||
gpg --import "$SCRIPT_DIR/alarm-signing-key.asc"
|
||||
else
|
||||
gpg --keyserver keyserver.ubuntu.com --recv-keys "$ALARM_KEY_ID"
|
||||
fi
|
||||
fi
|
||||
|
||||
if gpg --verify "$SIG_FILE" "$TARBALL_FILE"; then
|
||||
print_success "✓ GPG signature verified"
|
||||
else
|
||||
print_error "GPG signature verification failed"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
print_warning "No signature file found, skipping GPG verification"
|
||||
fi
|
||||
|
||||
print_info "Building Docker image from tarball..."
|
||||
|
||||
docker build --platform linux/arm64 -t omarchy-alarm-base:latest -f "$SCRIPT_DIR/Dockerfile.alarm-base" "$SCRIPT_DIR"
|
||||
|
||||
if [[ $? -eq 0 ]]; then
|
||||
print_success "Successfully created omarchy-alarm-base:latest"
|
||||
echo ""
|
||||
print_info "Testing the image..."
|
||||
docker run --rm --platform linux/arm64 omarchy-alarm-base:latest uname -a
|
||||
echo ""
|
||||
print_success "Bootstrap complete!"
|
||||
print_info "You can now build the aarch64 builder: docker build -f build/Dockerfile.aarch64"
|
||||
else
|
||||
print_error "Failed to create Docker image"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
print_info "Cleaning up downloaded files..."
|
||||
rm -f "$TARBALL_FILE" "$MD5_FILE" "$SIG_FILE"
|
||||
|
||||
print_success "Done!"
|
||||
Reference in New Issue
Block a user