1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
# trusty
FROM ubuntu:14.04 as hotspot_appimage_intermediate
# install dependencies
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get -y upgrade && \
apt-get install -y software-properties-common build-essential curl git wget \
autotools-dev autoconf libtool liblzma-dev libz-dev gettext && \
add-apt-repository ppa:beineri/opt-qt-5.10.1-trusty -y && \
apt-get update && \
apt-get install -y qt510base qt510svg qt510x11extras cmake3 libdwarf-dev mesa-common-dev \
libboost-iostreams-dev libboost-program-options-dev libboost-system-dev libboost-filesystem-dev
WORKDIR /opt
# download and build zstd
RUN wget -nv -c "https://github.com/facebook/zstd/archive/v1.4.5.tar.gz" -O zstd.tar.gz && \
tar xf zstd.tar.gz && cd zstd-1.4.5 && make -j$(nproc) && sudo make install && cd ..
# download prebuild KF5 libraries and ECM
RUN wget -c "https://github.com/chigraph/precompiled-kf5-linux/releases/download/precompiled/kf5-gcc6-linux64-release.tar.xz" && \
tar --strip-components=2 -xf kf5-gcc6-linux64-release.tar.xz -C /opt/qt510/
# download AppImage tools and extract them, to remove fuse dependency
RUN wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" -O /tmp/linuxdeployqt && \
wget -c "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" -O /tmp/appimagetool && \
chmod a+x /tmp/linuxdeployqt /tmp/appimagetool && \
/tmp/linuxdeployqt --appimage-extract && mv squashfs-root linuxdeployqt && \
/tmp/appimagetool --appimage-extract && mv squashfs-root appimagetool && \
mkdir /opt/bin && \
ln -s /opt/linuxdeployqt/AppRun /opt/bin/linuxdeployqt && \
ln -s /opt/appimagetool/AppRun /opt/bin/appimagetool
# setup env
ENV PATH="/opt/bin:/opt/qt510/bin:${PATH}" \
PKG_CONFIG_PATH="/opt/qt510/lib/pkgconfig:${PKG_CONFIG_PATH}" \
LD_LIBRARY_PATH="/opt/qt510/lib:/opt/qt510/lib/x86_64-linux-gnu"
# setup hotspot build environment
FROM hotspot_appimage_intermediate
ADD . /opt/hotspot
WORKDIR /opt/hotspot
RUN tar -C / -xvf scripts/elfutils/elfutils.build.tar.bz2
RUN tar -C / -xvf scripts/rustc-demangle/rustc_demangle.build.tar.bz2
CMD ./scripts/build_appimage.sh /opt /artifacts
|