Skip to content
Snippets Groups Projects
Verified Commit 7f61686c authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Improve dockerfile

parent 1de15890
No related branches found
No related tags found
No related merge requests found
# development image
ARG BASE=alpine:latest ARG BASE=alpine:latest
FROM $BASE AS builder FROM $BASE AS builder
# install development dependencies
RUN apk add --no-cache \ RUN apk add --no-cache \
cmake \ cmake \
curl \ curl \
...@@ -13,21 +15,25 @@ RUN apk add --no-cache \ ...@@ -13,21 +15,25 @@ RUN apk add --no-cache \
libressl \ libressl \
libressl-dev \ libressl-dev \
openldap-dev \ openldap-dev \
make \ ninja \
paxmark \ paxmark \
qt5-qtbase-dev \ qt5-qtbase-dev \
qt5-qtscript-dev \ qt5-qtscript-dev \
qt5-qtbase-postgresql \ qt5-qtbase-postgresql \
qt5-qtbase-sqlite qt5-qtbase-sqlite
# setup repo
RUN mkdir /quassel && \ RUN mkdir /quassel && \
cd /quassel/ && \ git clone -b 0.13 --single-branch https://github.com/quassel/quassel /quassel/src && \
git clone -b 0.13 --single-branch https://github.com/quassel/quassel src && \ cd /quassel/src && \
cd /quassel/src/ && \
git checkout 0.13.1 git checkout 0.13.1
# generate build files
RUN mkdir /quassel/build && \ RUN mkdir /quassel/build && \
cd /quassel/build && \ cd /quassel/build && \
CXXFLAGS="-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -fPIE -pie -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now" cmake \ CXXFLAGS="-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -fPIE -pie -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now" \
cmake \
-GNinja \
-DCMAKE_INSTALL_PREFIX=/quassel/install \ -DCMAKE_INSTALL_PREFIX=/quassel/install \
-DCMAKE_BUILD_TYPE="Release" \ -DCMAKE_BUILD_TYPE="Release" \
-DUSE_QT5=ON \ -DUSE_QT5=ON \
...@@ -36,31 +42,40 @@ RUN mkdir /quassel/build && \ ...@@ -36,31 +42,40 @@ RUN mkdir /quassel/build && \
-DWANT_CORE=ON \ -DWANT_CORE=ON \
-DWANT_MONO=OFF \ -DWANT_MONO=OFF \
/quassel/src /quassel/src
# build binaries
RUN cd /quassel/build && \ RUN cd /quassel/build && \
make && \ ninja && \
make install && \ ninja install && \
paxmark -m /quassel/install/bin/quasselcore paxmark -m /quassel/install/bin/quasselcore
# runtime image
FROM $BASE FROM $BASE
# install runtime dependencies
RUN apk add --no-cache \ RUN apk add --no-cache \
icu-libs \ icu-libs \
libressl \ libressl \
openldap \
qt5-qtbase \ qt5-qtbase \
qt5-qtscript \ qt5-qtscript \
qt5-qtbase-postgresql \ qt5-qtbase-postgresql \
qt5-qtbase-sqlite qt5-qtbase-sqlite
# copy binaries
COPY --from=builder /quassel/install/bin /usr/bin/ COPY --from=builder /quassel/install/bin /usr/bin/
# setup user environment
RUN addgroup -g 1000 -S quassel && \ RUN addgroup -g 1000 -S quassel && \
adduser -S -G quassel -u 1000 -s /bin/bash -h /config quassel adduser -S -G quassel -u 1000 -s /bin/bash -h /config quassel
USER quassel USER quassel
VOLUME /config VOLUME /config
# expose ports
EXPOSE 4242/tcp EXPOSE 4242/tcp
EXPOSE 10113/tcp EXPOSE 10113/tcp
# setup default configuration
ENV DB_BACKEND="SQLite" ENV DB_BACKEND="SQLite"
ENV AUTH_AUTHENTICATOR="Database" ENV AUTH_AUTHENTICATOR="Database"
ENV DB_PGSQL_USERNAME="quassel" ENV DB_PGSQL_USERNAME="quassel"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment