commit ebd9a17a6b2f7219e86a127e4fd9364e5f1912ce Author: Stanislav N. aka pztrn Date: Mon Oct 7 13:44:14 2019 +0500 Initial commit with Quassel 0.13.1+git. diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..81b802f --- /dev/null +++ b/.drone.yml @@ -0,0 +1,15 @@ +--- +kind: pipeline +type: docker +name: build + +steps: +- name: docker + image: plugins/docker + settings: + username: + from_secret: dockerhub_user + password: + from_secret: dockerhub_password + repo: pztrn/quasselcore + auto_tag: true \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b00007e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,81 @@ +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"]