Skip to content

Commit 349f8af

Browse files
committed
Update readme
1 parent 6da07a6 commit 349f8af

1 file changed

Lines changed: 44 additions & 4 deletions

File tree

README.md

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,38 @@ Release `v3.0` is the first stable and reviewed version of SciCatLive.
1212

1313
## Steps
1414

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
38+
[configuration options table](#docker-compose-profiles-and-env-variables-configuration-options).
39+
40+
For a more flexible configuration, please refer to the next section on running from the source code.
41+
42+
### Running from the source code
43+
44+
When running from the source code, the user has more flexibility in choosing the configuration and features to run,
45+
but they need to have a local copy of the repository. The following instructions are for Linux and MacOS users.
46+
1547
<details markdown="1">
1648
<summary>Windows specific instructions (click to expand)</summary>
1749
<br>
@@ -189,7 +221,7 @@ the following [table](#docker-compose-profiles-and-env-variables-configuration-o
189221
### Docker compose profiles and env variables configuration options
190222

191223
| Type | Env key | Value: Service/Feature | Default | Backend Compatibility | Description | Other impacted services |
192-
|---------|-----------------------|-----------------------------------------------------------------------------------------------------------------------|---------|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------|
224+
| ------- | --------------------- | --------------------------------------------------------------------------------------------------------------------- | ------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
193225
| 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 | |
194226
| 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 |
195227
| 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
330362
[loop_entrypoints](./entrypoints/loop_entrypoints.sh) utility, which loops alphabetically over
331363
`/docker-entrypoinst/*.sh` and executes each. This is in use in some services (e.g. in the
332364
[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
334366
(eventually rename the existing ones as well).
335367

336368
#### If the service does not support entrypoints yet, one needs to
337369

338370
<details markdown="1">
339371
<summary>(click to expand):</summary>
340372

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
343377
them sequentially, depending on the desired execution order
344378
3. override the `entrypoint` field in the service
345379
4. specify the service `command`
@@ -353,6 +387,12 @@ See for example the [frontend compose file](./services/frontend/compose.yaml).
353387
Please note that services should, in general, be defined by their responsibility, rather than by their underlying
354388
technology, and should be named so.
355389

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+
356396
### Basic
357397

358398
To add a new service (see the [jupyter service](./services/jupyter/) for a minimal example):

0 commit comments

Comments
 (0)