Add dockerfile to provide upgrade-tools in reproductible manner 62/280162/3
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Wed, 24 Aug 2022 13:58:26 +0000 (15:58 +0200)
committerKarol Lewandowski <k.lewandowsk@samsung.com>
Wed, 24 Aug 2022 15:14:58 +0000 (17:14 +0200)
Build with:
./docker-build.sh

Run with:
docker run --rm -ti --privileged -v /dev:/dev -v /data:/data upgrade-tools:latest

Update volume (-v) mappings as needed. Note that --privileged and -v /dev:/dev are needed
for loop device mounting to work correctly. /data volume is just example how to transfer
tizen images into container and deltas - out of container.

Change-Id: I5bd09d446df32eda44dddffb9dcc5bee942cd427

Dockerfile [new file with mode: 0644]
docker-build.sh [new file with mode: 0755]

diff --git a/Dockerfile b/Dockerfile
new file mode 100644 (file)
index 0000000..ce810e1
--- /dev/null
@@ -0,0 +1,21 @@
+FROM ubuntu:20.04 as build
+
+ENV DEBIAN_FRONTEND="noninteractive"
+ENV TZ=UTC
+
+ADD bsdiff /bsdiff
+
+RUN apt-get update && apt-get -y --no-install-recommends install libbrotli-dev libdivsufsort-dev git cmake build-essential pkg-config
+RUN git clone git://git.tizen.org/platform/upstream/lzma-sdk -b tizen /lzma-sdk
+RUN cd /lzma-sdk && cmake -DLIB_INSTALL_DIR=/usr/local/lib . && make install
+RUN cd bsdiff && cmake . && make install
+
+FROM ubuntu:20.04
+
+ADD mk_delta /tota-upg/mk_delta/
+ADD scripts  /tota-upg/scripts/
+ADD recovery /tota-upg/recovery/
+COPY --from=build /usr/local/bin/ss_bsdiff /usr/local/bin/ss_bspatch /usr/local/bin/
+COPY --from=build /usr/local/lib/liblzma-tool.so.* /usr/local/lib
+RUN apt-get update && \
+       apt-get install -y --no-install-recommends libbrotli1 libdivsufsort3 python-is-python2 python2 python-apt p7zip-full attr tar file sudo && rm -rf /var/lib/apt/lists/*
diff --git a/docker-build.sh b/docker-build.sh
new file mode 100755 (executable)
index 0000000..b6f6486
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec docker build --no-cache -t upgrade-tools:latest .