6.5 KiB
gCube System - Dockerized D4Science
Version
version v1.0.0
Structure of the project
This project provides a containerized environment for two primary services: socialservice
and liferay
, each supported by its specific infrastructure. The configuration allows the two infrastructures to be launched independently or together, and services can be started individually if desired.
Built With
Docker
Documentation
GIT
the first time you check-out a repo you need to use --init
git submodule update --init --recursive
the other times
git pull --recurse-submodules
Services
-
socialservice: Located in
socialservice/
, this includes configurations and Docker setups for deploying a custom social networking service. It depends on Cassandra and Keycloak to handle database storage and identity management, respectively.
docker commands:
docker compose up cassandra1 cassandra2 cassandra3 socialservice --build --force-recreate -d
docker compose stop cassandra1 cassandra2 cassandra3 socialservice
-
liferay: The
liferay/
directory contains all configurations and Dockerfiles required to deploy the Liferay content management platform, along with its supporting infrastructure like PostgreSQL.
docker commands:
docker compose up postgres keycloak liferay --build --force-recreate -d
docker compose stop postgres keycloak liferay
Docker compose instructions
you can start the 2 services individually entering in the folder and starting the docker compose instance, or start the common compose in the base folder.
docker compose -f compose.yml up -d # Start
docker compose -f compose.yml build # Build
docker compose -f compose.yml stop # Stop
docker compose -f compose.yml down # Destroy
docker compose -f compose.yml ps # Check Status
start common composer:
docker compose up -d
force recreate docker image:
docker compose build --no-cache
you can force the build and/or reload:
docker compose up --build --force-reloads -d
check status:
-
postgres:
docker inspect --format='{{json .State.Health}}' lr_docker-postgres-1
-
keycloak:
docker inspect --format='{{json .State.Health}}' lr_docker-keycloak-1
-
liferay:
docker inspect --format='{{json .State.Health}}' lr_docker-liferay-1
-
socialservice:
docker inspect --format='{{json .State.Health}}' lr_docker-socialservice
-
cassandara1:
docker inspect --format='{{json .State.Health}}' cassandra1
-
cassandara2:
docker inspect --format='{{json .State.Health}}' cassandra2
-
cassandara3:
docker inspect --format='{{json .State.Health}}' cassandra3
open bash in instance:
-
postgres:
docker exec -it lr_docker-postgres-1 /bin/sh
-
keycloak:
docker exec -it lr_docker-keycloak-1 /bin/sh
-
liferay:
docker exec -it lr_docker-liferay-1 /bin/sh
-
socialservice:
docker exec -it lr_docker socialservice /bin/sh
-
cassandra1:
docker exec -it lr_docker cassandra1 /bin/sh
-
cassandra2:
docker exec -it lr_docker cassandra2 /bin/sh
-
cassandra3:
docker exec -it lr_docker cassandra3 /bin/sh
All services
docker compose up --build *d
docker compose stop
Social Service
docker compose up cassandra1 cassandra2 cassandra3 socialservice --build *d
docker compose stop cassandra1 cassandra2 cassandra3 socialservice
Liferay service
docker compose up postgres keycloak liferay --build *d
docker compose stop postgres keycloak liferay
Single components
cassandra
cassandra is the dockerization of the cassandra infrastructure it contains the script for dumping the devel environment, and the Dockerfile and Docker compose files to build and start the composed instance with the dumped schema and data
docker compose up cassandra1 cassandra2 cassandra3 --build *d
docker compose stop cassandra1 cassandra2 cassandra3
check status:
-
cassandara1
docker inspect --format='{{json .State.Health}}' cassandra1
docker exec -it cassandra1 nodetool status
-
cassandara2
docker inspect --format='{{json .State.Health}}' cassandra2
docker exec -it cassandra1 nodetool status
-
cassandara3
docker inspect --format='{{json .State.Health}}' cassandra3
docker exec -it cassandra1 nodetool status
socialservice
socialservice is the dockerization of the socialservice infrastructure it contains the script for dumping the devel environment, and the Dockerfile and Docker compose files to build and start the composed instance with the dumped schema and data
Keycloak
keycloack is the dockerization of the keycloack authentication services. it contains the Dockerfile and Docker compose files to build and start the composed instance with the d4science.json data
Liferay
to exec the liferay instance you need to to your host file (/etc/host
) the entries:
127.0.0.1 keycloak
127.0.0.1 liferay
keycloak server: http://keycloak:9999
liferay server:
open bash on server
check db connection:
docker exec -it lr_docker-liferay-1 bash -c 'PGPASSWORD=pass_db psql -h lr_docker-postgres-1 -U infra_bundle_dev -d liferay_db'
Change log
See Releases.
Authors
- Alfredo Oliviero (ORCID) - ISTI-CNR Infrascience Group
Maintainers
- Alfredo Oliviero (ORCID) - ISTI-CNR Infrascience Group
License
This project is licensed under the EUPL V.1.1 License - see the LICENSE.md file for details.
About the gCube Framework
This software is part of the gCubeFramework: an open-source software toolkit used for building and operating Hybrid Data Infrastructures enabling the dynamic deployment of Virtual Research Environments by favouring the realisation of reuse oriented policies.
The projects leading to this software have received funding from a series of European Union programmes see FUNDING.md