90 lines
3.3 KiB
Docker
90 lines
3.3 KiB
Docker
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"]
|