|
1 | | -# PIDscope AppImage build environment |
2 | | -# docker build -t pidscope-appimage packaging/appimage/ |
3 | | -# docker run --rm -v $(pwd):/src -v $(pwd)/dist:/dist pidscope-appimage |
4 | | - |
5 | | -FROM ubuntu:22.04 |
6 | | -ENV DEBIAN_FRONTEND=noninteractive |
7 | | - |
8 | | -# Latest Octave from PPA (Ubuntu 22.04 repos only have 6.x) |
9 | | -RUN apt-get update && apt-get install -y software-properties-common && \ |
10 | | - add-apt-repository -y ppa:ubuntuhandbook1/octave && \ |
11 | | - apt-get update |
12 | | - |
13 | | -RUN apt-get install -y \ |
14 | | - octave liboctave-dev \ |
15 | | - build-essential git \ |
16 | | - wget file desktop-file-utils appstream \ |
17 | | - libfftw3-3 libopenblas0 libsuitesparse-dev \ |
18 | | - libgl1-mesa-glx libfontconfig1 libfreetype6 \ |
19 | | - && rm -rf /var/lib/apt/lists/* |
20 | | - |
21 | | -RUN octave --eval "\ |
22 | | - pkg install -forge control; \ |
23 | | - pkg install -forge signal; \ |
24 | | - pkg install -forge datatypes; \ |
25 | | - pkg install -forge statistics; \ |
26 | | - pkg install -forge image;" |
27 | | - |
28 | | -# Compile blackbox_decode from source (not in git) |
29 | | -RUN mkdir -p /cache && \ |
30 | | - git clone --depth=1 https://github.com/betaflight/blackbox-tools.git /tmp/bb-bf && \ |
31 | | - cd /tmp/bb-bf && make -j$(nproc) obj/blackbox_decode && \ |
32 | | - gcc -o /cache/blackbox_decode obj/*.o -lm && \ |
33 | | - cd / && rm -rf /tmp/bb-bf && \ |
34 | | - git clone --depth=1 https://github.com/iNavFlight/blackbox-tools.git /tmp/bb-inav && \ |
35 | | - cd /tmp/bb-inav && make -j$(nproc) obj/blackbox_decode && \ |
36 | | - cp obj/blackbox_decode /cache/blackbox_decode_INAV && \ |
37 | | - cd / && rm -rf /tmp/bb-inav |
38 | | - |
39 | | -RUN wget -q "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" \ |
40 | | - -O /usr/local/bin/linuxdeploy && \ |
41 | | - chmod +x /usr/local/bin/linuxdeploy && \ |
42 | | - wget -q "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" \ |
43 | | - -O /usr/local/bin/appimagetool && \ |
44 | | - chmod +x /usr/local/bin/appimagetool |
45 | | - |
46 | | -WORKDIR /build |
47 | | -COPY build-appimage.sh /build/ |
48 | | -RUN chmod +x /build/build-appimage.sh |
49 | | -ENTRYPOINT ["/build/build-appimage.sh"] |
| 1 | +# PIDscope AppImage build environment |
| 2 | +# docker build -t pidscope-appimage packaging/appimage/ |
| 3 | +# docker run --rm -v $(pwd):/src -v $(pwd)/dist:/dist pidscope-appimage |
| 4 | + |
| 5 | +FROM ubuntu:22.04 |
| 6 | +ENV DEBIAN_FRONTEND=noninteractive |
| 7 | + |
| 8 | +# Latest Octave from PPA (Ubuntu 22.04 repos only have 6.x) |
| 9 | +RUN apt-get update && apt-get install -y software-properties-common && \ |
| 10 | + add-apt-repository -y ppa:ubuntuhandbook1/octave && \ |
| 11 | + apt-get update |
| 12 | + |
| 13 | +RUN apt-get install -y \ |
| 14 | + octave liboctave-dev \ |
| 15 | + build-essential git \ |
| 16 | + wget file desktop-file-utils appstream \ |
| 17 | + libfftw3-3 libopenblas0 libsuitesparse-dev \ |
| 18 | + libgl1-mesa-glx libfontconfig1 libfreetype6 \ |
| 19 | + && rm -rf /var/lib/apt/lists/* |
| 20 | + |
| 21 | +RUN wget --tries=5 --timeout=30 -q \ |
| 22 | + "https://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/image-2.18.1.tar.gz/download" \ |
| 23 | + -O /tmp/image-2.18.1.tar.gz && \ |
| 24 | + octave --eval "\ |
| 25 | + pkg install 'https://github.com/gnu-octave/pkg-control/releases/download/control-4.2.1/control-4.2.1.tar.gz'; \ |
| 26 | + pkg install 'https://github.com/gnu-octave/octave-signal/releases/download/1.4.7/signal-1.4.7.tar.gz'; \ |
| 27 | + pkg install 'https://github.com/pr0m1th3as/datatypes/releases/download/release-1.1.8/datatypes-1.1.8.tar.gz'; \ |
| 28 | + pkg install 'https://github.com/gnu-octave/statistics/releases/download/release-1.8.1/statistics-1.8.1.tar.gz'; \ |
| 29 | + pkg install '/tmp/image-2.18.1.tar.gz';" |
| 30 | + |
| 31 | +# Compile blackbox_decode from source (not in git) |
| 32 | +RUN mkdir -p /cache && \ |
| 33 | + git clone --depth=1 https://github.com/betaflight/blackbox-tools.git /tmp/bb-bf && \ |
| 34 | + cd /tmp/bb-bf && make -j$(nproc) obj/blackbox_decode && \ |
| 35 | + gcc -o /cache/blackbox_decode obj/*.o -lm && \ |
| 36 | + cd / && rm -rf /tmp/bb-bf && \ |
| 37 | + git clone --depth=1 https://github.com/iNavFlight/blackbox-tools.git /tmp/bb-inav && \ |
| 38 | + cd /tmp/bb-inav && make -j$(nproc) obj/blackbox_decode && \ |
| 39 | + cp obj/blackbox_decode /cache/blackbox_decode_INAV && \ |
| 40 | + cd / && rm -rf /tmp/bb-inav |
| 41 | + |
| 42 | +RUN wget -q "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" \ |
| 43 | + -O /usr/local/bin/linuxdeploy && \ |
| 44 | + chmod +x /usr/local/bin/linuxdeploy && \ |
| 45 | + wget -q "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" \ |
| 46 | + -O /usr/local/bin/appimagetool && \ |
| 47 | + chmod +x /usr/local/bin/appimagetool |
| 48 | + |
| 49 | +WORKDIR /build |
| 50 | +COPY build-appimage.sh /build/ |
| 51 | +RUN chmod +x /build/build-appimage.sh |
| 52 | +ENTRYPOINT ["/build/build-appimage.sh"] |
0 commit comments