Rafael Calleja commited on
Commit ·
d724875
1
Parent(s): 4ab3312
add build
Browse files- Dockerfile +45 -0
- Makefile +18 -1
Dockerfile
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# syntax=docker/dockerfile:1.4-labs
|
| 2 |
+
FROM ubuntu:24.04 as base
|
| 3 |
+
ENV DEBIAN_FRONTEND=noninteractive
|
| 4 |
+
ENV ROOTFS=/tmp/restore
|
| 5 |
+
|
| 6 |
+
RUN --mount=type=bind,source=./,target=/var/tmp/restic,rw --security=insecure \
|
| 7 |
+
apt update && apt install -yq wget bzip2 make time && \
|
| 8 |
+
wget -qO - https://raw.githubusercontent.com/cupcakearmy/autorestic/master/install.sh | bash && \
|
| 9 |
+
autorestic --version && \
|
| 10 |
+
mkdir -p ${ROOTFS} && \
|
| 11 |
+
cd /var/tmp/restic; make restore
|
| 12 |
+
|
| 13 |
+
WORKDIR ${ROOTFS}
|
| 14 |
+
RUN --security=insecure \
|
| 15 |
+
mkdir -p ${ROOTFS}/proc && \
|
| 16 |
+
mkdir -p ${ROOTFS}/dev && \
|
| 17 |
+
mkdir -p ${ROOTFS}/dev/pts && \
|
| 18 |
+
mkdir -p ${ROOTFS}/sys && \
|
| 19 |
+
mkdir -p ${ROOTFS}/run && \
|
| 20 |
+
mount --bind /proc ${ROOTFS}/proc && \
|
| 21 |
+
mount --bind /dev ${ROOTFS}/dev && \
|
| 22 |
+
mount --bind /sys ${ROOTFS}/sys && \
|
| 23 |
+
mount --bind /run ${ROOTFS}/run && \
|
| 24 |
+
mount -t devpts devpts ${ROOTFS}/dev/pts && \
|
| 25 |
+
mkdir -p ${ROOTFS}/home/eggs/.overlay && \
|
| 26 |
+
mount -t tmpfs tmpfs ${ROOTFS}/home/eggs/.overlay/ && \
|
| 27 |
+
mkdir -p ${ROOTFS}/home/eggs/.overlay/{upperdir,workdir} && \
|
| 28 |
+
mkdir -p ${ROOTFS}/home/eggs/.mnt/filesystem.squashfs/var && \
|
| 29 |
+
mkdir -p ${ROOTFS}/home/eggs/.overlay/lowerdir/var && \
|
| 30 |
+
mkdir -p ${ROOTFS}/home/eggs/.overlay/upperdir/var && \
|
| 31 |
+
mkdir -p ${ROOTFS}/home/eggs/.overlay/workdir/var && \
|
| 32 |
+
mount -t overlay overlay -o lowerdir=${ROOTFS}/home/eggs/.overlay/lowerdir/var,upperdir=${ROOTFS}/home/eggs/.overlay/upperdir/var,workdir=${ROOTFS}/home/eggs/.overlay/workdir/var ${ROOTFS}/home/eggs/.mnt/filesystem.squashfs/var || dmesg && \
|
| 33 |
+
chroot ${ROOTFS} /bin/bash -c "rm /etc/resolv.conf && \
|
| 34 |
+
echo nameserver 8.8.8.8 > /etc/resolv.conf && \
|
| 35 |
+
cd /tmp && \
|
| 36 |
+
/usr/bin/git clone https://github.com/pieroproietti/get-eggs && \
|
| 37 |
+
cd get-eggs && \
|
| 38 |
+
./get-eggs.sh && \
|
| 39 |
+
rm -rf /*is-merged && \
|
| 40 |
+
eggs calamares -i -r -v && \
|
| 41 |
+
SUDO_USER=ubuntu eggs produce --max --nointeractive --noicon --excludes=static,homes -v --release" && \
|
| 42 |
+
cp $(find ${ROOTFS}/home/eggs -name "*.iso" -type f -printf "%T@ %p\n" | sort -n | tail -1 | cut -d' ' -f2) /tmp/distro-live.iso
|
| 43 |
+
|
| 44 |
+
FROM alpine
|
| 45 |
+
COPY --from=base /tmp/distro-live.iso /distro-live.iso
|
Makefile
CHANGED
|
@@ -1,4 +1,9 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
GOPASS_FILE ?= .autorestic.yml
|
| 3 |
GOPASS_KEY ?= $(REPOSITORY)/$(GOPASS_FILE)
|
| 4 |
CURRENT_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
|
@@ -27,3 +32,15 @@ load:
|
|
| 27 |
|
| 28 |
show-cron:
|
| 29 |
@cat $(CURRENT_DIR)/.cron | sed "s|CURRENT_DIR|$(CURRENT_DIR)|g"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
IMAGE_PROVIDER ?= docker.io
|
| 2 |
+
IMAGE_NAME ?= rafaelcalleja/distrostore
|
| 3 |
+
IMAGE_TAG ?= ubuntu-24.04
|
| 4 |
+
IMAGE ?= $(IMAGE_NAME):$(IMAGE_TAG)
|
| 5 |
+
|
| 6 |
+
REPOSITORY ?= github.com/$(IMAGE_NAME)
|
| 7 |
GOPASS_FILE ?= .autorestic.yml
|
| 8 |
GOPASS_KEY ?= $(REPOSITORY)/$(GOPASS_FILE)
|
| 9 |
CURRENT_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
|
|
|
| 32 |
|
| 33 |
show-cron:
|
| 34 |
@cat $(CURRENT_DIR)/.cron | sed "s|CURRENT_DIR|$(CURRENT_DIR)|g"
|
| 35 |
+
|
| 36 |
+
build:
|
| 37 |
+
docker run -it --rm --privileged -e BUILDKITD_FLAGS="--allow-insecure-entitlement security.insecure" \
|
| 38 |
+
-v $(CURRENT_DIR):/tmp/work \
|
| 39 |
+
--entrypoint buildctl-daemonless.sh \
|
| 40 |
+
moby/buildkit:master \
|
| 41 |
+
build \
|
| 42 |
+
--frontend dockerfile.v0 \
|
| 43 |
+
--local context=/tmp/work \
|
| 44 |
+
--local dockerfile=/tmp/work \
|
| 45 |
+
--allow security.insecure \
|
| 46 |
+
--output type=image,name=$(IMAGE_PROVIDER)/$(IMAGE),push=true
|