Skip to content

Commit edde1d0

Browse files
authored
Merge pull request #79 from intelligent-agent/chore/make-image-with-docker
First attempt to use docker
2 parents c59928a + 992a868 commit edde1d0

4 files changed

Lines changed: 47 additions & 9 deletions

File tree

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ jobs:
3838
3939
- name: Make image
4040
run: |
41-
sudo apt install debootstrap qemu-user-static u-boot-tools
42-
sudo ./mkimage.sh
41+
make docker
42+
mv output/*.img.xz .
4343
4444
- name: Release if tagged
4545
uses: ncipollo/release-action@v1

Makefile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,19 @@ image:
106106
make build
107107
make build-go
108108
sudo ./mkimage.sh
109+
110+
docker:
111+
mkdir -p output
112+
git describe --always --tags > docker-reflash/reflash-version
113+
cp mkimage.sh docker-reflash
114+
cp -r bin/prod docker-reflash/bin
115+
cp -r client docker-reflash/
116+
cp -r rootfs_files docker-reflash/
117+
mkdir -p docker-reflash/reflash
118+
cp reflash/reflash docker-reflash/reflash
119+
cp reflash/Roboto-Light.ttf docker-reflash/reflash
120+
cd docker-reflash; docker build -t docker-reflash .
121+
cd docker-reflash; docker container run -v /dev/:/dev -v $(PWD)/output:/output --privileged=true --name reflash docker-reflash
122+
docker container prune -f
123+
109124
.PHONY: tests

docker-reflash/Dockerfile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# syntax=docker/dockerfile:1
2+
3+
FROM debian:latest
4+
RUN apt update && apt install -y sudo systemctl debootstrap xz-utils u-boot-tools fdisk cpio
5+
WORKDIR /app
6+
COPY . .
7+
CMD ["./mkimage.sh"]

mkimage.sh

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ mkdir -p "${ROOTFSDIR}"
99
sudo debootstrap --arch=arm64 --foreign --variant=minbase bookworm "${ROOTFSDIR}"/initrd
1010

1111
if [ ! -f rootfs_files/debs/linux-image-legacy-sunxi64_23.08.0-trunk_arm64__5.15.127.deb ]; then
12-
wget -P rootfs_files/debs/ http://feeds.iagent.no/debian/pool/main/linux-image-legacy-sunxi64_23.08.0-trunk_arm64__5.15.127.deb
12+
wget -q -P rootfs_files/debs/ http://feeds.iagent.no/debian/pool/main/linux-image-legacy-sunxi64_23.08.0-trunk_arm64__5.15.127.deb
1313
fi
1414

1515
sudo cp rootfs_files/debs/* "${ROOTFSDIR}"/initrd
@@ -74,7 +74,24 @@ LinkLocalAddressing=yes
7474
MulticastDNS=yes
7575
EOF
7676

77-
systemctl enable wpa_supplicant@wlan0.service --root="${ROOTFSDIR}"/initrd
77+
cat <<'EOF' > "${ROOTFSDIR}"/initrd/etc/systemd/system/wpa_supplicant_for_wlan0.service
78+
[Unit]
79+
Description=WPA supplicant daemon for wlan0
80+
Requires=sys-subsystem-net-devices-wlan0.device
81+
After=sys-subsystem-net-devices-wlan0.device
82+
Before=network.target
83+
Wants=network.target
84+
85+
[Service]
86+
Type=simple
87+
ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -iwlan0
88+
ExecReload=/bin/kill -HUP $MAINPID
89+
90+
[Install]
91+
WantedBy=multi-user.target
92+
EOF
93+
94+
systemctl enable wpa_supplicant_for_wlan0.service --root="${ROOTFSDIR}"/initrd
7895

7996
cat <<EOF > "${ROOTFSDIR}"/initrd/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
8097
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
@@ -114,12 +131,11 @@ sudo mkdir -p "${ROOTFSDIR}"/initrd/usr/local/share/fonts
114131
sudo cp reflash/Roboto-Light.ttf "${ROOTFSDIR}"/initrd/usr/local/share/fonts/
115132
sudo mkdir -p "${ROOTFSDIR}"/initrd/var/www/html/reflash
116133
sudo cp -r client/dist "${ROOTFSDIR}"/initrd/var/www/html/reflash
117-
sudo cp bin/prod/* "${ROOTFSDIR}"/initrd/usr/local/bin
134+
sudo cp bin/* "${ROOTFSDIR}"/initrd/usr/local/bin
118135
sudo mkdir -p "${ROOTFSDIR}"/initrd/mnt/usb
119136

120-
TAG=$(git describe --always --tags)
121-
NAME="reflash-${TAG}"
122-
echo "$NAME" > "$ROOTFSDIR"/initrd/etc/reflash-version
137+
sudo cp reflash-version "$ROOTFSDIR"/initrd/etc/
138+
NAME="reflash-"$(cat reflash-version | tr -d '\n')
123139

124140
# Move the boot folder outside the rootfs
125141
sudo rm -rf "${ROOTFSDIR}"/boot
@@ -157,6 +173,6 @@ sudo umount "${ROOTFSDIR}"/image
157173
sudo losetup -d "${LOOPDEV}"
158174

159175
xz -f -T 0 -k -z "${ROOTFSDIR}"/reflash.img
160-
mv "${ROOTFSDIR}"/reflash.img.xz ./${NAME}.img.xz
176+
mv "${ROOTFSDIR}"/reflash.img.xz /output/${NAME}.img.xz
161177

162178
sudo rm -rf "${ROOTFSDIR}"

0 commit comments

Comments
 (0)