fractal-analytics-platform / fractal-containers

Containers for testing Fractal
BSD 3-Clause "New" or "Revised" License
1 stars 0 forks source link

18 integrate some part of fractal demos #21

Closed mfranzon closed 10 months ago

mfranzon commented 11 months ago

Work in progress fractal demos compose.

Refactor of fractal-share directory. At the moment there is a mess in the fractal-share usage, it is used during the image building and during the startup of services. This provokes inconsistencies in the state of the folder, it can be empty, with the right content or not.

Possible solution, move all the demos services command in the docker compose, leaving demos image without an entrypoint.

This postpone the usage of fractal-server resolving the the inconsistency.

In general, is highly discourage using a mount-point during the image building, it should be use just at run time.

ref fractal-analytics-platform/fractal-server#866 , fractal-analytics-platform/fractal-containers#18

tcompa commented 10 months ago

Current folder structure:

$ tree . -I Resources -I Old
.
├── config.env
├── demos
│   ├── Dockerfile.demos.step1
│   ├── Dockerfile.demos.step2
│   ├── fractal.env
│   ├── get_fractal_client.sh
│   ├── get_fractal_demos.sh
│   ├── get_fractal_tasks_core.sh
│   ├── requirements-validation.txt
│   └── run_demos.sh
├── docker-compose-demos.yml
├── LICENSE
├── makefile
├── README.md
├── server
│   ├── Dockerfile.server.step1
│   ├── Dockerfile.server.step2
│   ├── get_fractal_server.sh
│   └── server.env
└── web
    ├── Dockerfile.web.step1
    ├── Dockerfile.web.step2
    ├── get_fractal_web.sh
    └── web.env

3 directories, 21 files

where the get scripts are the ones handling versions.

tcompa commented 10 months ago

As per versions: we can now set them via the config.env file (not for GitHub CI, but for local tests). I've not yet implemented some from-git installs, but the release can be set correctly.

tcompa commented 10 months ago

Some of the latest updates:

  1. Two-step builds for all three services (demos, server, web), required for handling environment variables while keeping a bit of caching;
  2. A preliminary version of version-handling for all components (server, client, web, tasks, demos) - see config.env;
  3. A re-organized makefile, with precise cache/no-cache targets and with two main targets for local tests (possibly with versions, and always with web) and github tests;
  4. A general clean up.

This is enough for this PR, let's open new issues/PRs for specific future updates.