Commit graph

122 commits

Author SHA1 Message Date
Marco Marinello
d61163857b [docker] Remove -j from core build
Signed-off-by: Marco Marinello <contact+nohuman@marinello.bz.it>
Change-Id: I851bb20c5c9cf983d558c248435b1d47731dcb51
2022-04-12 09:57:10 +02:00
Marco Marinello
c544acfd22 [docker] Be consistent in number of processors used to build
Signed-off-by: Marco Marinello <contact+nohuman@marinello.bz.it>
Change-Id: I063b82ad9ee7b8795637ea058e1e15b8331c8818
2022-04-12 09:57:10 +02:00
Rash419
ff8236740f docker: added start-collabora-online.pl in docker files
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I224c9dc017257403c7c92ba4be8c3d76e77f5270
2022-04-05 13:47:57 +02:00
Jan Holesovsky
031fb0e398 Script to rewrite coolwsd.xml based on the aliasgroup<number> envvars
This is to be able to define the alias groups via YAML easily, like:

    environment:
      - aliasgroup1=https://servername:443,https://its-alias:443,https://its-second-alias:443
      - aliasgroup2=https://second-servername:443,https://seconds-alias:443

Signed-off-by: Jan Holesovsky <kendy@collabora.com>
Change-Id: Ib653f7ab420fed342a00f5f5997a113da9739866
2022-04-05 13:47:57 +02:00
Andras Timar
0a978edd87 docker: from-source: cool user has id 498 in latest opensuse/leap
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ie730b609e3bcccfa3ff6ddb2f949353846f7eec9
2022-02-22 10:57:21 +01:00
Andras Timar
01903149b0 docker: from-source: use the new distro/collabora/co-22.05 core branch
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I72c2d51e6d3984e822b0e050f4d78513d792065f
2022-02-22 10:57:21 +01:00
Andras Timar
96e3c161c3 docker: from-source: use latest POCO 1.11.1 release
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I492b6231e4e290523638e60549447fb9877a2bba
2022-02-22 10:57:21 +01:00
Andras Timar
e668110461 docker: update files for upcoming 21.11 release
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Id4b572e4970844a7da7ff64603483d67f13285c2
2021-11-22 15:00:16 +01:00
Andras Timar
4873480d63 Revert "docker: Make Notebookbar the default again"
This reverts commit b92befff94.
Reason: we have new default on 21.11, cf. b4f588ea3 and this patch
is now obsolete. We cannot build 6.4 docker images from this branch
anyway, because of the rename.

Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I1dd0960b3bdbeecec52d548a4053a3482887df0c
2021-11-22 14:36:08 +01:00
Andras Timar
e6dcb98d1d docker: online master branch is buildable with code distro/collabora/co-2021 branch
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I274b4fe636bdb19c45c32b4ec7af1c4e7b711522
2021-11-22 14:24:44 +01:00
Andras Timar
2a2f567d8d docker: prepatarion of CODE 21.11
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I434ed669549fcf0c0a6417b63ff2ebed3cac18e3
2021-11-18 16:06:01 +01:00
Andras Timar
f07ff8c7e0 rename: remaining lool->cool changes
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib7d4e804bebe52dead8d53b0e0bbaed0f08bf3d0
2021-11-18 14:14:11 +01:00
Marco Marinello
4c1185be73 Fix debian dockerfile
explicitly set buster as source since is now oldstable

Signed-off-by: Marco Marinello <me@marcomarinello.it>
Change-Id: I7153ad1ce61bc6fcd4862209a01a4f73e68b5aa5
2021-11-18 07:43:24 +01:00
Andras Timar
504c05df3b rename: loolwsd-systemplate-setup -> coolwsd-systemplate-setup
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I699db87f94f9080909c2ca783e04ad8b4dd98025
2021-11-17 22:10:58 +01:00
Andras Timar
bf5bce7669 rename: loolwsd-generate-proof-key -> coolwsd-generate-proof-key
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I3aa30ce4e5f6df2068fa2e0788034e83cb0ae26b
2021-11-17 22:06:34 +01:00
Mert Tumer
c9a4d2f6f3 rename: loolmount -> coolmount
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: Ic025c5a76c6f27cdf1a6267f24cf8052733f1f24
2021-11-17 21:51:05 +01:00
Henry Castro
c9e8ef69be misc: more renames 'lool' -> 'cool'
Change-Id: I2b4f9a1ee9e2560265af1a9cd78b774bb42c4d40
Signed-off-by: Henry Castro <hcastro@collabora.com>
2021-11-17 09:17:42 +01:00
Henry Castro
f793eab2e3 distro: more renames 'lool' -> 'cool'
Change-Id: I281270d36293bc16688f016ddcb2f3187aa03fea
Signed-off-by: Henry Castro <hcastro@collabora.com>
2021-11-17 09:17:34 +01:00
Henry Castro
b672f2f5f4 distro: rename 'lool' -> 'cool'
Change-Id: I07ed54446a4776c76213191000385441e3118001
Signed-off-by: Henry Castro <hcastro@collabora.com>
2021-11-17 09:17:23 +01:00
Mert Tumer
81f61c8073 rename: loolforkit -> coolforkit
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: I1de688dce4b068bff35451604486b72ecc8c91d4
2021-11-16 21:02:24 +01:00
Erik Habicht
cbe99ee874 Move adding the start script after running the install script.
This will speed up docker build if only something in start-collabora-online.sh has changed.

Signed-off-by: Erik Habicht <erik.habicht@gmail.com>
Change-Id: Iaa9566f6793b47877901522f1f0e7cb2acc530b6
2021-11-16 11:28:14 +01:00
Aron Budea
b92befff94 docker: Make Notebookbar the default again
...and user interface mode parametrizable.

Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: Id4538f27f5aef9190c546ec8dc1d505042837aeb
2021-11-16 10:13:14 +01:00
Henry Castro
025e7bc97b docker: update comment
rename loleaflet -> cool

Change-Id: Ia33130e2f57e071379e388601267f7c6598bc948
Signed-off-by: Henry Castro <hcastro@collabora.com>
2021-11-10 17:18:56 +01:00
Sam Litvin
433c01982c Update start-collabora-online.sh
There is no reason why the UI mode should be set here where it over-rides the setting in loolwsd.xml.

Change-Id: I5f4ecd61dba96831dec28e7d3175718c8d63287c
Signed-off-by: litvin-Millogic <sam-linux@litvinhome.net>
2021-11-09 10:12:30 +01:00
Ashod Nakashian
e1ff82324e docker: exec the startup script to intercept SIGTERM
Docker supports two methods of executing commands.
The existing approach was to run bash and give the
shell script to execute, which forks and execs another
shell instance to run the script. This means that the
script itself is not PID 1, rather the parent bash
instance is.
The second approach is to exec the script in the same
bash process, without a parent. This is exactly what
we want, because once our script is done, it execs
loolwsd, thereby making loolwsd PID 1.

All of this means that when the docker container is
stopped, and PID 1 is sent SIGTERM, loolwsd will
intercept it and gracefully shutdown.

Change-Id: I52ac63f7fba58d20d1c6f63c7e07dd18141c1af4
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-10-12 09:36:33 +02:00
Andras Timar
741221f122 do not use deprecated apt-key command (fixes #1934)
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Iefbcdcc18a9c1dfcb8e6b57abfa17ed29b81355d
2021-08-23 13:52:16 +02:00
Michael Meeks
7b89840798 docker: only substitute variables when they are set.
Clobbering a copied-in config un-necessarily is impolite.

Change-Id: I9eec5711d12def987f2ae08f9e6bd77f1636780e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2021-08-10 20:40:22 +01:00
Andras Timar
3537f06d75 docker: install libnss3 on aarch64
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ifbfa06052bf7af72beacbefe672db93e52a812ed
2021-04-06 13:39:30 +02:00
Yunusemre Şentürk
27365caf98 Use CODE arm64 repository while the base OS architecture is aarch64
when creating docker image

Change-Id: I8562b5bbccc50d11c6b8110a4791fa9592eff6b8
Signed-off-by: Yunusemre Şentürk <yunusemre@collabora.com>
2021-04-06 12:21:21 +03:00
Andras Timar
547150a163 add 'how to build Collabora Online 6.4 docker' to README
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I9a4e647d3cf0381afd7a7cc5cbd2aedab0214619
2021-02-09 15:48:22 +01:00
Andras Timar
92f44a4695 On-disk cache was removed long ago, clean-up in packaging
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I2eeaed12af6ac8789151b95a9c2a2aa1fd72573b
2021-01-26 21:10:50 +01:00
Martin Hoffmann
fff344afed fix build.sh: wrong directory after poco install
After compiling and installing poco the script is left in the wrong path, resulting core to be deployed underneath poco directory which breaks configure --with-lo-path later on.

Signed-off-by: Martin Hoffmann <mhoffmann@pro-nets.de>
Change-Id: I46c5b77e44eebead08c8a7fb857c229900a23570
2021-01-26 13:59:26 +01:00
Andras Timar
8b0af828ef Revert "docker: do not modify loolwsd.xml, use command line parameters instead"
This reverts commit 93dfff7dad.
Reason: #1264 and #1235
2021-01-18 15:12:29 +01:00
Andras Timar
289a51db58 Fix #895: build poco from source, link poco statically, add openSUSE target, and other fixes
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I525ee004771ad335e41e4602e044d4fd8d8a19bc
2021-01-11 11:46:52 +01:00
Michael Meeks
317dffb817 Optimize copy of jails to hard-linking with new capability.
In some cases we cannot do a fast bind-mount of the files we want
in our jail since we don't have cap_sys_admin for loolmount inside
eg. docker.

Thus we need to fallback to hard-linking, however various security
systems namespace parts of our tree, such that link() fails with
EXDEV even across the (apparently) same file-system.

As such we need to assemble a copy of what we want to hard-link
close to our jails. However, this needs to be owned by root / the
system to avoid having writable files shared between jails. Hence
we need cap_chown in addition to cap_fowner, to get ownership right
and then hard-link.

Change-Id: Iba0ef46ddbc1c03f3dc7177bc1ec1755624135db
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2021-01-04 15:05:36 +00:00
Ashod Nakashian
3e86ed373c docker: disable logging colors
Colors in docker only add noise in the form
of the escape codes around the log entries.
Best to disable colored logging in docker.

Change-Id: I15c62910856eb37e41585be7b7bbe78ce5456283
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2020-12-09 17:19:58 +01:00
Andras Timar
d8bda129d7 docker: narrow down permission changes, binaries in systemplate should be owned by root
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I371c8445c12a10d52c4645a460d626a8a0e0e33b
2020-12-04 21:23:11 +01:00
Andras Timar
93dfff7dad docker: do not modify loolwsd.xml, use command line parameters instead
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I12b1791ef9480cb3391caf292d0e9208323765e0
2020-12-04 15:02:15 +01:00
Andras Timar
418743df89 systemd was installed for /etc/localtime, so numeric user id of lool shifted to 104
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ibdbc54eeddc47bbe5a1a852b8d1319299b5fa837
2020-12-01 12:38:50 +01:00
Andras Timar
4a13c650f4 docker: README typo
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ideadb508f2cb3db7cfdd0098a1d580f1caf1eb36
2020-11-30 22:28:54 +01:00
Andras Timar
99bd298878 docker: fix syntax error and a typo
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ia2eb07301efeaed4350571657fb6a21280b4c2de
2020-11-27 12:32:24 +01:00
Andras Timar
75947daccc docker: RHEL8: Install cpio (missing dependency needed by loolwsd-systemplate-setup)
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I0224e3bcabf84fb44e5ec9937bd0e765f5a64324
2020-11-23 15:22:28 +01:00
Andras Timar
93870d7e08 typo in docker/README
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I134187c8f88aa115796d850be2c6d9b0e29bc8a1
2020-11-22 22:41:42 +01:00
Andras Timar
06623247f0 typo in docker/README
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib9305de89421540f6341d96318f639dde100b69b
2020-11-22 22:40:02 +01:00
Andras Timar
34b8ff08f6 Docker bits
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I4b4d8f9d6ccb8648d5d75e6abff751d1b37e8773
2020-11-22 22:19:34 +01:00
Andras Timar
34bc966d68 change product name
Change-Id: Ic34d324c952364442d3f4f9f0758676ab57c8a9a
2020-10-02 14:18:28 +02:00
Andras Timar
0002fdfd6c fix license headers
Change-Id: I8623770b32d278a45357dc7f757fabfadd2b4af7
2020-10-01 11:56:43 +02:00
Ashod Nakashian
5c9988f2e3 wsd: faster jail setup via bind-mount
loolmount now works and supports mounting and
unmounting, plus numerous improvements,
refactoring, logging, etc..  When enabled,
binding improves the jail setup time by anywhere
from 2x to orders of magnitude (in docker, f.e.).

A new config entry mount_jail_tree controls
whether mounting is used or the old method of
linking/copying of jail contents. It is set to
true by default and falls back to linking/copying.
A test mount is done when the setting is enabled,
and if mounting fails, it's disabled to avoid noise.

Temporarily disabled for unit-tests until we can
cleanup lingering mounts after Jenkins aborts our
build job. In a future patch we will have mount/jail
cleanup as part of make.

The network/system files in /etc that need frequent
refreshing are now updated in systemplate to make
their most recent version available in the jails.
These files can change during the course of loolwsd
lifetime, and are unlikely to be updated in
systemplate after installation at all. We link to
them in the systemplate/etc directory, and if that
fails, we copy them before forking each kit
instance to have the latest.

This reworks the approach used to bind-mount the
jails and the templates such that the total is
now down to only three mounts: systemplate, lo, tmp.

As now systemplate and lotemplate are shared, they
must be mounted as readonly, this means that user/
must now be moved into tmp/user/ which is writable.

The mount-points must be recursive, because we mount
lo/ within the mount-point of systemplate (which is
the root of the jail). But because we (re)bind
recursively, and because both systemplate and
lotemplate are mounted for each jails, we need to
make them unbindable, so they wouldn't multiply the
mount-points for each jails (an explosive growth!)
Contrarywise, we don't want the mount-points to
be shared, because we don't expect to add/remove
mounts after a jail is created.

The random temp directory is now created and set
correctly, plus many logging and other improvements.

Change-Id: Iae3fda5e876cf47d2cae6669a87b5b826a8748df
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92829
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2020-07-01 05:42:43 +02:00
Andras Timar
ac71e9c63a we don't have to depend on locales-all
... after 15ced64d32

Change-Id: If08624d4c9614f3616af7f39c7bc636aebaf749b
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/95024
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
2020-06-01 19:32:42 +02:00
Marco Marinello
16f72821bd Enhance docker build system: reduce created layers
Signed-off-by: Marco Marinello <marinello@libreoffice.org>
Change-Id: If12a84b3adb82dad3bf7ef7ea423e8bdfac1650e
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/94261
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2020-05-20 08:35:03 +02:00