FROM alpine:3.10 as build-stage # build time arguements ARG CXXFLAGS="\ -D_FORTIFY_SOURCE=2 \ -Wp,-D_GLIBCXX_ASSERTIONS \ -fstack-protector-strong \ -fPIE -pie -Wl,-z,noexecstack \ -Wl,-z,relro -Wl,-z,now" # install build packages RUN \ apk add --no-cache \ boost \ boost-dev \ cmake \ curl \ dbus-dev \ g++ \ gcc \ git \ icu-dev \ icu-libs \ jq \ openssl-dev \ openldap-dev \ make \ paxmark \ qt5-qtbase-dev \ qt5-qtscript-dev \ qt5-qtbase-postgresql \ qt5-qtbase-sqlite # fetch source RUN \ mkdir -p \ /tmp/quassel-src && \ cd /tmp/quassel-src && \ git clone https://github.com/quassel/quassel . # build package RUN \ mkdir /tmp/quassel-src/build && \ cd /tmp/quassel-src/build && \ cmake \ -DCMAKE_BUILD_TYPE="Release" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DUSE_QT5=ON \ -DWANT_CORE=ON \ -DWANT_MONO=OFF \ -DWANT_QTCLIENT=OFF \ -DWITH_KDE=OFF \ /tmp/quassel-src && \ make -j4 && \ make DESTDIR=/build/quassel install && \ paxmark -m /build/quassel/usr/bin/quasselcore FROM alpine:3.10 # set environment variables ENV HOME /config # install runtime packages RUN \ apk add --no-cache \ icu-libs \ openssl \ qt5-qtbase \ qt5-qtbase-postgresql \ qt5-qtbase-sqlite \ qt5-qtscript # copy artifacts build stage COPY --from=build-stage /build/quassel/usr/bin/ /usr/bin/ COPY --from=build-stage /build/quassel/usr/lib64/ /usr/lib/ # ports and volumes VOLUME /config EXPOSE 4242 10113 ENTRYPOINT ["/usr/bin/quasselcore", "--configdir=/config"]