FROM ghcr.io/loong64/debian:sid AS build-stage WORKDIR /build RUN sed -i "s|deb.debian.org|mirrors.cloud.tencent.com|g" /etc/apt/sources.list.d/debian.sources && \ apt-get update && \ apt-get -y install wget git python3 lsb-release build-essential automake autoconf libtool rsync \ gperf \ python3-dev \ python3-setuptools \ libgss-dev \ bison \ flex \ zip \ gettext \ systemd \ libcurl4-gnutls-dev \ libssl-dev \ libfontconfig-dev \ libnss3-dev \ libcairo2-dev \ libpng-dev \ libmspub-dev \ libzmf-dev \ libcdr-dev \ libfreehand-dev \ python3-polib \ libcppunit-dev \ libcap-dev \ libpam0g-dev \ nodejs \ npm \ python3-lxml ENV COLLABORA_ONLINE_REPO=https://ghfast.top/https://github.com/CollaboraOnline/online.git COPY build-poco.sh /build RUN ./build-poco.sh COPY build-lo.sh /build COPY libreoffice-submodule.patch /build RUN ./build-lo.sh COPY build-code.sh /build COPY code-loongarch.patch /build RUN ./build-code.sh FROM ghcr.io/loong64/debian:sid AS final-stage # get the latest fixes # install LibreOffice run-time dependencies # install adduser, findutils, openssl and cpio that we need later # install an editor # tdf#117557 - Add CJK Fonts to Collabora Online Docker Image RUN sed -i "s|deb.debian.org|mirrors.cloud.tencent.com|g" /etc/apt/sources.list.d/debian.sources && \ apt-get update && \ apt-get -y install libpng16-16 fontconfig adduser cpio \ findutils nano libcap2-bin openssl \ libubsan1 openssh-client fonts-wqy-zenhei \ fonts-wqy-microhei fonts-droid-fallback fonts-noto-cjk \ libcairo2 libcdr-0.1-1 libfreehand-0.1-1 libgss3 libmspub-0.1-1 libnspr4 libnss3 libpython3.13 libzmf-0.0-0 \ ca-certificates libcurl3t64-gnutls # copy freshly built LOKit and Collabora Online COPY --from=build-stage /build/instdir/ / # copy the shell script which can start Collabora Online (coolwsd) COPY /start-collabora-online.sh / # set up Collabora Online (normally done by postinstall script of package) # Fix permissions # chown -R cool:cool /opt/ && \ RUN setcap cap_fowner,cap_chown,cap_sys_chroot=ep /usr/bin/coolforkit-caps && \ setcap cap_sys_admin=ep /usr/bin/coolmount && \ adduser --quiet --system --group --home /opt/cool cool && \ rm -rf /opt/cool && \ mkdir -p /opt/cool/child-roots /opt/cool/cache && \ coolwsd-systemplate-setup /opt/cool/systemplate /opt/lokit >/dev/null 2>&1 && \ touch /var/log/coolwsd.log /var/log/coolwsd-ui-cmd.log && \ chown cool:cool /var/log/coolwsd*.log && \ chown -R cool:cool /opt/cool && \ chown -R cool:cool /etc/coolwsd EXPOSE 9980 # switch to cool user (use numeric user id to be compatible with Kubernetes Pod Security Policies) USER 100 ENTRYPOINT ["/start-collabora-online.sh"]