You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+44-4Lines changed: 44 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,38 @@ Release `v3.0` is the first stable and reviewed version of SciCatLive.
12
12
13
13
## Steps
14
14
15
+
### Installing via the OCI packages
16
+
17
+
Starting from release `v3.10`, SciCatLive is published as OCI packages, which can be found on the GitHub [Container Registry](https://github.com/orgs/SciCatProject/packages?repo_name=scicatlive).
18
+
19
+
For every new release, these tags are added to the registry:
20
+
21
+
-`latest(|version)`: the latest release with default configuration;
22
+
-`latest(|version)-full`: the latest release with all features enabled;
23
+
-`latest(|version)-dev`: the latest release with containers prepared for development.
24
+
-`latest(|version)-dev-full`: the latest release with all features enabled and containers prepared for development.
25
+
-`latest(|version)-v3`: the latest release with the v3 backend and minimal configuration.
26
+
-`latest(|version)-v3-full`: the latest release with the v3 backend and all features enabled.
27
+
28
+
To use the OCI packages, simply pull the desired tag from the registry and run it with `docker compose`:
29
+
30
+
```sh
31
+
docker compose -f oci://ghcr.io/scicatproject/scicatlive:<tag> up -d
32
+
```
33
+
34
+
Please note that, when running the OCI packages, the configuration options are limited to the ones that do not require
35
+
changes in the `compose.yaml` files, as these are included in the package as they are. For example, the `v3` backend
36
+
is available as a separate tag, as it requires changes in the `compose.yaml` file to be used. For more information on
37
+
the available configuration options, please refer to the
| profile |`COMPOSE_PROFILES`| <li>`analysis`: jupyter<li>`search`: searchapi,landingpage,oaipmh<li>`'*'`: jupyter,searchapi,landingpage,oaipmh</li> |`''`|\*| <li>analysis: enables additional jupyter notebook with python SciCat SDK installed and example notebooks<li>search: enables a SciCat interface for standardized search and a public interface for published datasets ||
194
226
| env |`BE_VERSION`| <li>`v3`: backend/v3<li>`v4`: backend/v4 |`v4`| as set | Sets the BE version to use in (2) of [default setup](#default-setup) to v3 | mongodb,frontend |
195
227
| env |`JOBS_ENABLED`|`true`: rabbitmq,archivemock (v3 only),jobs feature |`''`|\*| Creates a RabbitMQ message broker which the BE posts to and the archivemock listens to and enables the frontend features. Archivemock emulates the data long-term archive/retrieve workflow ||
@@ -330,16 +362,18 @@ To ease the iterative execution of multiple init scripts, one can leverage the
330
362
[loop_entrypoints](./entrypoints/loop_entrypoints.sh) utility, which loops alphabetically over
331
363
`/docker-entrypoinst/*.sh` and executes each. This is in use in some services (e.g. in the
332
364
[frontend](./services/frontend/compose.yaml)), so one can add additional init steps by mounting them, one by one, as
333
-
volumes inside the container in the `/docker-entrypoints` folder and naming them depending on the desired order
365
+
bind mounts inside the container in the `/docker-entrypoints` folder and naming them depending on the desired order
334
366
(eventually rename the existing ones as well).
335
367
336
368
#### If the service does not support entrypoints yet, one needs to
337
369
338
370
<detailsmarkdown="1">
339
371
<summary>(click to expand):</summary>
340
372
341
-
1. mount the [loop_entrypoint.sh](./entrypoints/loop_entrypoints.sh) as a volume inside the container
342
-
2. mount any service-specific init script as a volume in the container in the folder `/docker-entrypoints/*.sh`, naming
373
+
1. mount the [loop_entrypoint.sh](./entrypoints/loop_entrypoints.sh) as a
374
+
[docker compose config](https://docs.docker.com/reference/compose-file/services/#configs) inside the container
375
+
2. mount any service-specific init script as a [docker compose config](https://docs.docker.com/reference/compose-file/services/#configs)
376
+
in the container in the folder `/docker-entrypoints/*.sh`, naming
343
377
them sequentially, depending on the desired execution order
344
378
3. override the `entrypoint` field in the service
345
379
4. specify the service `command`
@@ -353,6 +387,12 @@ See for example the [frontend compose file](./services/frontend/compose.yaml).
353
387
Please note that services should, in general, be defined by their responsibility, rather than by their underlying
354
388
technology, and should be named so.
355
389
390
+
:warning: When adding a new service, please use [docker compose configs](https://docs.docker.com/reference/compose-file/services/#configs)
391
+
for mounting files inside the container, rather than bind mounts, as they are more robust and easier to maintain.
392
+
This is mostly relevant for the published OCI packages, as bind mounts require the user to have specific files in
393
+
their local environment, which might not be the case, while configs are included in the package itself as part
394
+
of the [release workflow](./.github/semantic-release/publish-oci.js).
395
+
356
396
### Basic
357
397
358
398
To add a new service (see the [jupyter service](./services/jupyter/) for a minimal example):
0 commit comments