Warning, /pim/kdepim-docker/Dockerfile is written in an unsupported language. File is not indexed.
0001 FROM kdeneon/plasma:unstable 0002 MAINTAINER KDE PIM <kde-pim@kde.org> 0003 ARG QTVERSION 0004 0005 USER root 0006 0007 RUN apt-get update && apt-get dist-upgrade -y 0008 0009 # Setup environment for NVIDIA 0010 LABEL com.nvidia.volumes.needed="nvidia_driver" 0011 RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ 0012 echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf 0013 ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} 0014 ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64:${LD_LIBRARY_PATH} 0015 0016 RUN apt install neon-settings-2 0017 0018 # uninstall the KDE PIM that ships in the base image 0019 RUN apt-get remove -y \ 0020 kdesdk-devenv-dependencies \ 0021 && apt autoremove -y 0022 0023 # Minimal dependencies 0024 RUN apt-get install -y --no-install-recommends \ 0025 cmake extra-cmake-modules g++ gettext git libboost-all-dev \ 0026 libfreetype6-dev make libyaml-perl libyaml-libyaml-perl 0027 0028 # requirements for clazy 0029 #RUN apt-get update && apt-get install -y --no-install-recommends \ 0030 # clang llvm-dev libclang-dev 0031 0032 # build and install clazy 0033 #RUN git clone git://anongit.kde.org/clazy.git \ 0034 # && cd clazy \ 0035 # && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \ 0036 # && make install 0037 #RUN rm -rf clazy 0038 0039 # runtime dependencies (MariaDB, postgresql) 0040 RUN apt-get install -y --no-install-recommends \ 0041 mariadb-server postgresql 0042 0043 # dependencies for development 0044 RUN apt-get install -y --no-install-recommends \ 0045 cmake-curses-gui ccache icecc\ 0046 less vim strace kdevelop valgrind gdb gammaray 0047 0048 # currently there is no QT6 documentation 0049 #RUN apt-get install -y --no-install-recommends \ 0050 # qt5-doc qt*5-doc 0051 0052 # install KDE PIM dependencies 0053 RUN apt-get install -y --no-install-recommends \ 0054 libassuan-dev bison libical3-dev liblzma-dev \ 0055 libxslt-dev libsqlite3-dev libxapian-dev xsltproc \ 0056 libsasl2-dev libldap2-dev libqrencode-dev libdmtx-dev \ 0057 libpoppler-private-dev libzxing-dev \ 0058 breeze-icon-theme flex gpgsm osmctools pinentry-qt xsdcxx 0059 0060 RUN if [ "$QTVERSION" = 6 ] ; \ 0061 then apt-get install -y --no-install-recommends --allow-remove-essential \ 0062 kio- libkf5*- plasma-desktop- neon-desktop- \ 0063 libkf6archive-dev libkf6auth-dev libkf6bookmarks-dev libkf6calendarcore-dev libkf6codecs-dev \ 0064 libkf6completion-dev libkf6config-dev libkf6configwidgets-dev libkf6contacts-dev \ 0065 libkf6coreaddons-dev libkf6crash-dev libkf6dav-dev libkf6dbusaddons-dev libkf6declarative-dev \ 0066 libkf6dnssd-dev libkf6doctools-dev \ 0067 libkf6globalaccel-dev libkf6guiaddons-dev libkf6holidays-dev libkf6i18n-dev libkf6iconthemes-dev \ 0068 libkf6itemmodels-dev libkf6itemviews-dev libkf6jobwidgets-dev libkf6kcmutils-dev \ 0069 libkf6kio-dev libkf6newstuff-dev \ 0070 libkf6notifications-dev libkf6notifyconfig-dev libkf6parts-dev libkf6prison-dev \ 0071 libkf6qqc2desktopstyle-dev libkf6runner-dev \ 0072 libkf6service-dev libkf6sonnet-dev libkf6syntaxhighlighting-dev libkf6syndication-dev \ 0073 libkf6texteditor-dev libkf6textwidgets-dev libkf6wallet-dev libkf6widgetsaddons-dev \ 0074 libkf6windowsystem-dev libkf6xmlgui-dev libkf6networkmanagerqt-dev \ 0075 libkf6purpose-dev \ 0076 libpoppler-qt6-dev \ 0077 ; else apt-get install -y --no-install-recommends \ 0078 qtbase5-private-dev qtwebengine5-dev libqt5x11extras5-dev qttools5-dev \ 0079 libqt5svg5-dev libqt5texttospeech5-dev libqt5sql5-mysql libqt5sql5-psql \ 0080 libqca-qt5-2-dev libqt5networkauth5-dev qt5keychain-dev qtlocation5-dev \ 0081 qtmultimedia5-dev qtquickcontrols2-5-dev qtdeclarative5-private-dev \ 0082 \ 0083 libgrantlee5-dev libphonon4qt5-dev libgpgmepp-dev libgpgme-dev \ 0084 libkaccounts-dev kirigami2-dev libkolabxml-dev kross-dev \ 0085 kirigami-addons-dev \ 0086 \ 0087 libkf5archive-dev libkf5auth-dev libkf5bookmarks-dev libkf5calendarcore-dev libkf5codecs-dev \ 0088 libkf5completion-dev libkf5config-dev libkf5configwidgets-dev libkf5contacts-dev \ 0089 libkf5coreaddons-dev libkf5crash-dev libkf5dav-dev libkf5dbusaddons-dev libkf5declarative-dev \ 0090 libkf5dnssd-dev libkf5doctools-dev libkf5emoticons-dev \ 0091 libkf5globalaccel-dev libkf5guiaddons-dev libkf5holidays-dev libkf5i18n-dev libkf5iconthemes-dev \ 0092 libkf5itemmodels-dev libkf5itemviews-dev libkf5jobwidgets-dev libkf5kcmutils-dev \ 0093 libkf5kdelibs4support-dev libkf5kio-dev libkf5newstuff-dev \ 0094 libkf5notifications-dev libkf5notifyconfig-dev libkf5parts-dev libkf5prison-dev \ 0095 libkf5qqc2desktopstyle-dev libkf5runner-dev \ 0096 libkf5service-dev libkf5sonnet-dev libkf5syntaxhighlighting-dev libkf5syndication-dev \ 0097 libkf5texteditor-dev libkf5textwidgets-dev libkf5wallet-dev libkf5widgetsaddons-dev \ 0098 libkf5windowsystem-dev libkf5xmlgui-dev libkf5xmlrpcclient-dev libkf5networkmanagerqt-dev \ 0099 libkf5purpose-dev \ 0100 libpoppler-qt5-dev \ 0101 ; fi 0102 0103 # Make polkit-1 writable - kalarm installs its policy there because 0104 # that's where kauth frameworks expects it. This is a development 0105 # environment, so it's not a huge problem, but don't try this at 0106 # home, kids. 0107 RUN chmod a+w /usr/share/polkit-1/actions 0108 0109 # Configure pulseaudio to connect to host pulseaudio. Requires running 0110 # container with -v=/var/run/${USER_UID}/pulse:/run/user/1000/pulse:rw,z 0111 # Based on https://github.com/TheBiggerGuy/docker-pulseaudio-example 0112 COPY pulse-client.conf /etc/pulse/client.conf 0113 0114 # Add neon to audio group 0115 RUN usermod -a -G audio neon 0116 0117 # Make XDG_RUNTIME_DIR owned by the user 0118 RUN mkdir -p /run/user/1000 && chown -R neon:neon /run/user/1000/ && chmod 7700 /run/user/1000/ 0119 RUN mkdir -p /var/run/dbus 0120 # Make cache dire owned by the user (needed for kdevelop) 0121 RUN mkdir -p /home/neon/.cache && chown -R neon: /home/neon/.cache 0122 0123 0124 ################# USER actions #################### 0125 USER neon 0126 0127 # Clone & setup kdesrc-build 0128 0129 RUN git clone https://invent.kde.org/sdk/kdesrc-build.git 0130 COPY kde-env /home/neon/.kde-env 0131 COPY kdepim-env /home/neon/.kdepim-env 0132 COPY start-iceccd.sh /home/neon/.start-iceccd.sh 0133 COPY setup-dbus.sh /home/neon/.setup-dbus.sh 0134 0135 # Enable the environment 0136 RUN echo '\n\nsource /home/neon/.kdepim-env' >> ~/.bashrc 0137 RUN echo 'source /home/neon/.kde-env' >> ~/.bashrc 0138 RUN echo 'source /home/neon/.setup-dbus.sh' >> ~/.bashrc 0139 RUN echo 'source /home/neon/.start-iceccd.sh' >> ~/.bashrc 0140 0141 RUN mkdir kdepim 0142 COPY kdesrc-buildrc-qt${QTVERSION} /home/neon/kdepim/config/kdesrc-buildrc 0143 0144 # Make the ccache bigger (the default 5G is not enough for PIM) 0145 RUN mkdir /home/neon/kdepim/.ccache \ 0146 && echo 'max_size = 10.0G' > /home/neon/kdepim/.ccache/ccache.conf 0147 0148 # Copy init.sh and start it 0149 COPY init.sh /usr/local/bin/init.sh 0150 ENTRYPOINT [ "/bin/bash" ]