Add docker build
This commit is contained in:
parent
7369cb0551
commit
3818ac3a33
|
|
@ -3,6 +3,9 @@
|
|||
# exit when any command fails
|
||||
set -e
|
||||
|
||||
ARCH=$(uname -m)
|
||||
echo "Building for $ARCH"
|
||||
|
||||
# https://stackoverflow.com/a/246128
|
||||
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
|
||||
ROOT_DIR=$(realpath $SCRIPT_DIR/..)
|
||||
|
|
@ -32,7 +35,7 @@ fi
|
|||
mkdir -p $PACKAGE_DIR/bin
|
||||
copy_and_inject_ua "$XREAL_DRIVER_DIR/bin/ua.sh" "$PACKAGE_DIR/bin" "$GNOME_DIR/bin/setup" "$GNOME_DIR/bin/breezy_gnome_verify" "$GNOME_DIR/bin/breezy_gnome_uninstall"
|
||||
|
||||
XREAL_BINARY=$XREAL_DRIVER_DIR/build/xrealAirLinuxDriver.tar.gz
|
||||
XREAL_BINARY=$XREAL_DRIVER_DIR/build/xrealAirLinuxDriver-$ARCH.tar.gz
|
||||
pushd $XREAL_DRIVER_DIR
|
||||
|
||||
if [ ! -e "$XREAL_BINARY" ] || [ "$1" != "--skip-module-builds" ]; then
|
||||
|
|
@ -50,7 +53,7 @@ fi
|
|||
XREAL_MANIFEST_LINE=$(sha256sum build/driver_air_glasses/manifest)
|
||||
popd
|
||||
|
||||
cp $XREAL_BINARY $PACKAGE_DIR
|
||||
cp $XREAL_BINARY $PACKAGE_DIR/xrealAirLinuxDriver.tar.gz
|
||||
cp $XREAL_DRIVER_DIR/bin/xreal_driver_setup $PACKAGE_DIR/bin
|
||||
|
||||
gnome/bin/package_extension
|
||||
|
|
@ -73,5 +76,5 @@ popd
|
|||
|
||||
# bundle everything up
|
||||
pushd $GNOME_BUILD_DIR
|
||||
tar -zcvf breezyGNOME.tar.gz breezy_gnome
|
||||
tar -zcvf breezyGNOME-$ARCH.tar.gz breezy_gnome
|
||||
popd
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
# To run the build from the package root:
|
||||
# docker buildx build --platform linux/amd64 -f ./docker-build/Dockerfile -t "breezy-desktop:amd64" --load .
|
||||
# docker buildx build --platform linux/arm64 -f ./docker-build/Dockerfile -t "breezy-desktop:arm64" --load .
|
||||
# docker buildx build --platform linux/arm/v7 -f ./docker-build/Dockerfile -t "breezy-desktop:armv7" --load .
|
||||
# docker run --rm -t -v ./:/source -v ./out/amd64:/out --platform linux/amd64 "breezy-desktop:amd64"
|
||||
# docker run --rm -t -v ./:/source -v ./out/arm64:/out --platform linux/arm64 "breezy-desktop:arm64"
|
||||
# docker run --rm -t -v ./:/source -v ./out/arm64:/out --platform linux/arm64 "breezy-desktop:armv7"
|
||||
|
||||
FROM --platform=$TARGETPLATFORM debian:latest
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
RUN echo "Target platform: $TARGETPLATFORM"
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential \
|
||||
cmake \
|
||||
pkg-config \
|
||||
libudev-dev \
|
||||
libusb-1.0-0-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libevdev-dev \
|
||||
libssl-dev \
|
||||
libjson-c-dev \
|
||||
python3 \
|
||||
python3-yaml \
|
||||
flatpak \
|
||||
flatpak-builder
|
||||
|
||||
VOLUME /out
|
||||
WORKDIR /source
|
||||
|
||||
CMD bin/package_gnome && cp build/*.tar.gz /out/
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [[ "$1" == "--init" || ! $(docker buildx inspect breezydesktopbuilder &>/dev/null; echo $?) -eq 0 ]]; then
|
||||
# start fresh
|
||||
echo "Creating new docker builder instance"
|
||||
docker buildx rm breezydesktopbuilder 2>/dev/null || true
|
||||
docker buildx create --name breezydesktopbuilder --use
|
||||
else
|
||||
echo "Using existing docker builder instance"
|
||||
docker buildx use breezydesktopbuilder
|
||||
fi
|
||||
|
||||
echo "Building docker image"
|
||||
docker buildx build --platform linux/amd64 -f ./docker-build/Dockerfile -t "breezy-desktop:amd64" --load .
|
||||
docker buildx build --platform linux/arm64 -f ./docker-build/Dockerfile -t "breezy-desktop:arm64" --load .
|
||||
docker buildx build --platform linux/arm/v7 -f ./docker-build/Dockerfile -t "breezy-desktop:armv7" --load .
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# Create output directories
|
||||
mkdir -p out/x86_64 out/aarch64 out/armv7
|
||||
|
||||
# Run containers for each architecture
|
||||
sudo rm -rf build/
|
||||
docker run --rm -t -v ./:/source -v ./out/x86_64:/out --platform linux/amd64 "breezy-desktop:amd64"
|
||||
|
||||
sudo rm -rf build/
|
||||
docker run --rm -t -v ./:/source -v ./out/aarch64:/out --platform linux/arm64 "breezy-desktop:arm64"
|
||||
|
||||
sudo rm -rf build/
|
||||
docker run --rm -t -v ./:/source -v ./out/armv7:/out --platform linux/arm/v7 "breezy-desktop:armv7"
|
||||
|
||||
# build directory structure is all owned by root because of docker, delete it all now
|
||||
sudo rm -rf build/
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit b97faa82a7767e4270e46886d68dd1c70b71abca
|
||||
Subproject commit 68e1c44d890cc317241dae25abba6cde8093e22a
|
||||
Loading…
Reference in New Issue