Docker compose reference

This page is a complete listing of configuration parameters for the Fyrefuse's docker compose file.

The same options are included in the custom installation but for an easier reference we also provide them here in a more structured format.

This Docker Compose file defines a multi-container setup for Fyrefuse, a distributed application consisting of a frontend, multiple backend instances, a database, and a worker service.

Below is a breakdown of the components.

Backend global configuration block

The reusable configuration block (&default-backend) used by every Fyrefuse's backend instances includes the following elements.

Name Description Default
image The Backend image registry path
restart The Frontend version to be deployed always
environment Common backends' instances env variables
volumes Volumes to be mounted on every backend instance spark_shared
networks Accessible networks from every backend instance fyrefuse-bridge

Docker containers

The actual list of deployed services along with their specific parameters.

Service Optional Role Ports Depends On Notes
db yes PostgreSQL database 5432:5432 None Stores application data
frontend no Web UI 8001:80 backend-1, backend-2, backend-3, backend-4 Serves the frontend app
backend-1 no Main backend 8002:6000 None Runs initial migrations and other preliminary tasks
backend-2 yes Additional backend 8003:6000 backend-1 Handles API requests
backend-3 yes Additional backend 8004:6000 backend-1 Handles API requests
backend-4 yes Additional backend 8005:6000 backend-1 Handles API requests
worker no Background worker None backend-1, backend-2, backend-3, backend-4 Runs background tasks

Service-specific parameters

Each container has its own set of parameters. Below is a breakdown of the parameters for each container.

Backend

Variable Name Description Default
BE_VERSION The Backend version to be deployed latest
FE_VERSION The Frontend version to be deployed latest
DATABASE_USER Specify the Fyrefuse database username fyrefuse_user
DATABASE_PASSWORD Specify the Fyrefuse database password
DATABASE_HOST Specify the Fyrefuse database hostname or ip localhost
DATABASE_PORT Specify the Fyrefuse database port 5432
DATABASE_NAME Specify the Fyrefuse database name fyrefuse_database
DATABASE_SCHEMA Specify the Fyrefuse database schema fyrefuse_schema
PIPELINE_LOGGER_LOGGER_URL The api url to be used by the FEM to send pipelines’ logs
PIPELINE_LOGGER_REPORT_URL The api url to be used by the FEM to send pipelines’ reports
GITLAB_PRIVATE_ACCESS_TOKEN Default access token for retrieving the FEM from gitlab (in case of spark standalone deployment engine)
FEM_BUILD_NAME FEM version that will be used for running the Fyrefuse’s pipelines
FEM_BUILD_LINK FEM build link
METASTORE_DB_NAME Specify the Metastore database name metastore
METASTORE_DB_SCHEMA Specify the Metastore database schema public
METASTORE_URI Specify the Metastore connection uri thrift://<metastore_hostname>
METASTORE_WAREHOUSE_DIR Specify the Metastore warehouse dir s3a://datalake/warehouse/
METASTORE_DB_CONNECTION_STRING Specify the Metastore database connection string jdbc:postgresql://localhost:5432/metastore
METASTORE_DB_DRIVER Specify the Metastore database driver org.postgresql.Driver
METASTORE_DB_USERNAME Specify the Metastore database username fyrefuse_user
METASTORE_DB_PASSWORD Specify the Metastore database password
DATALAYER_HTTP_MODE Specify the S3 object storage http mode http
DATALAYER_ENDPOINT Specify the S3 object storage endpoint
DATALAYER_ACCESS_KEY Specify the S3 object storage access key
DATALAYER_SECRET_KEY Specify the S3 object storage secret key

Frontend

Variable Name Description Default
FE_VERSION The Frontend version to be deployed latest
API_URL The base api url to be used by Fyrefuse frontend
API_LOGGER The endpoint to be used by Fyrefuse frontend to enable notifications
WS_URL The endpoint to be used by Fyrefuse frontend to enable Websockets

Database

Variable Name Description Default
POSTGRES_USER Specify the Fyrefuse database username fyrefuse_user
POSTGRES_PASSWORD Specify the Fyrefuse database password
FYREFUSE_DB Specify the Fyrefuse database name fyrefuse_database
FYREFUSE_SCHEMA Specify the Fyrefuse database schema fyrefuse_schema

Other configuration

The docker compose also contains volumes and networks items.

volumes

Mount the spark cluster shared NFS directory to share pipeline dependencies.


volumes:
	spark-shared:
		driver_opts:
		type: "nfs"
		o: "addr=spark-cluster.local,nolock,soft,nfsvers=4"
		device: ":/mnt/volume-workers/nfs_volume"
					

networks

Create a dedicate containers network


networks:
	fyrefuse-bridge:
		external: false
		name: fyrefuse-bridge