Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions application/ingestr/kafka-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,21 +66,6 @@ services:
retries: 60


# -------
# Bundler
# -------
# Wait for all defined services to be fully available by probing their health
# status, even when using `docker compose up --detach`.
# https://marcopeg.com/2019/docker-compose-healthcheck/
start-dependencies:
image: docker.io/dadarek/wait-for-dependencies
depends_on:
kafka:
condition: service_healthy
cratedb:
condition: service_healthy


# ---------------
# Tasks for Kafka
# ---------------
Expand Down
2 changes: 1 addition & 1 deletion application/ingestr/kafka-demo.xsh
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class Infrastructure:

def start(self):
title "Starting services"
result = ![ docker compose --file $COMPOSE_FILE up --detach ]
result = ![ docker compose --file $COMPOSE_FILE up --detach --wait ]
if result.returncode != 0:
echo "ERROR: Failed to start services"
exit 1
Expand Down
3 changes: 3 additions & 0 deletions application/metabase/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ services:
# Wait for all defined services to be fully available by probing their health
# status, even when using `docker compose up --detach`.
# https://marcopeg.com/2019/docker-compose-healthcheck/
# This is needed because `pytest-docker-compose-v2` does not support
# `docker compose up --detach` yet.
# https://github.com/radusuciu/pytest-docker-compose-v2/issues/6
wait:
image: dadarek/wait-for-dependencies
depends_on:
Expand Down
20 changes: 6 additions & 14 deletions application/roapi/compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,12 @@ services:
- 8080:8080
- 5434:5432
- 32010:32010
healthcheck:
test: ["CMD", "curl", "--fail", "http://localhost:8080/health"]
start_period: 3s
interval: 1.5s
retries: 30
timeout: 30s
Comment on lines +45 to +50
Copy link

@coderabbitai coderabbitai bot Dec 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

ROAPI does not expose a /health endpoint for health checks.

The healthcheck is configured to call http://localhost:8080/health, but ROAPI's documented API only includes data query endpoints (/api/sql, /api/graphql, /api/tables, /api/schema). This healthcheck will fail immediately, causing the container to restart repeatedly. Either use a simpler health check (e.g., curl http://localhost:8080/api/schema), or remove the healthcheck if the deployment doesn't require one.

🤖 Prompt for AI Agents
In application/roapi/compose.yml around lines 45 to 50, the healthcheck targets
/health which ROAPI doesn't expose; update the healthcheck to use a valid
endpoint such as "http://localhost:8080/api/schema" (or another documented API
path like /api/sql, /api/graphql, or /api/tables) or remove the healthcheck
entirely if not required by your deployment; ensure the test command uses --fail
and appropriate timeout/retry settings so the container won't repeatedly restart
on a permanent absence of a health endpoint.

Copy link
Member Author

@amotl amotl Dec 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like it works well. Maybe documentation can be improved? /cc @houqp, @coderabbitai

$ http localhost:8080/health
HTTP/1.1 200 OK
access-control-allow-origin: *
content-length: 2
content-type: text/plain
date: Mon, 22 Dec 2025 23:16:57 GMT
vary: origin, access-control-request-method, access-control-request-headers

OK


# ----------------
# Utility programs
Expand Down Expand Up @@ -126,17 +132,3 @@ services:
depends_on:
cratedb-register-data:
condition: service_completed_successfully

# -------
# Bundler
# -------
# Wait for all defined services to be fully available by probing their health
# status, even when using `docker compose up --detach`.
# https://marcopeg.com/2019/docker-compose-healthcheck/
start-dependencies:
image: docker.io/dadarek/wait-for-dependencies
depends_on:
cratedb:
condition: service_healthy
roapi:
condition: service_started
2 changes: 1 addition & 1 deletion application/roapi/roapi.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ FROM debian:bookworm-slim
LABEL org.opencontainers.image.source=https://github.com/roapi/roapi

RUN apt-get update \
&& apt-get install -y libssl-dev ca-certificates \
&& apt-get install -y libssl-dev ca-certificates curl \
&& rm -rf /var/lib/apt/lists/*

# Use `roapi` program from custom build.
Expand Down
2 changes: 1 addition & 1 deletion application/roapi/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# JDBC foreign data wrapper, then queries them.

# Start services: CrateDB and ROAPI.
docker compose up --build --detach
docker compose up --build --detach --wait

# Register data files with ROAPI.
docker compose run --rm roapi-register-data
Expand Down
2 changes: 1 addition & 1 deletion framework/flink/kafka-jdbcsink-java/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

# Start foundation infrastructure.
start:
docker compose up
docker compose up --detach --wait

# Publish a message to the Kafka broker.
test-publish:
Expand Down
23 changes: 6 additions & 17 deletions framework/flink/kafka-jdbcsink-java/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,12 @@ services:
taskmanager.numberOfTaskSlots: 2
networks:
- scada-demo
healthcheck:
test: ["CMD-SHELL", "ps -ef | grep org.apache.flink.runtime.taskexecutor.TaskManagerRunner | grep -q -v grep || exit 1"]
start_period: 3s
interval: 1s
timeout: 10s
retries: 60


# -------
Expand Down Expand Up @@ -128,23 +134,6 @@ services:
retries: 60


# -------
# Bundler
# -------
# Wait for all defined services to be fully available by probing their health
# status, even when using `docker compose up --detach`.
# https://marcopeg.com/2019/docker-compose-healthcheck/
start-dependencies:
image: dadarek/wait-for-dependencies
depends_on:
kafka-broker:
condition: service_healthy
flink-jobmanager:
condition: service_healthy
cratedb:
condition: service_healthy


# -----
# Tasks
# -----
Expand Down
2 changes: 1 addition & 1 deletion framework/flink/kafka-jdbcsink-java/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ set -e

function start-services() {
title "Starting services"
docker compose up --detach
docker compose up --detach --wait
}

function stop-services() {
Expand Down
2 changes: 1 addition & 1 deletion operation/compose/ssl/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
.PHONY: test
test: ## Run the integration tests.
@\
docker compose up --detach
docker compose up --detach --wait
sh client_crash.sh
sh client_pgsql.sh
uv run client_dbapi.py
Expand Down
9 changes: 0 additions & 9 deletions operation/compose/ssl/compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,3 @@ services:
interval: 1.5s
retries: 30
timeout: 30s

# Wait for the service being available, even when
# invoked through `docker compose up --detach`.
# https://marcopeg.com/2019/docker-compose-healthcheck/
wait-for-cratedb:
image: dadarek/wait-for-dependencies
depends_on:
cratedb:
condition: service_healthy
12 changes: 0 additions & 12 deletions topic/machine-learning/open-webui/compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,15 +165,3 @@ services:
condition: service_completed_successfully
deploy:
replicas: 0

# -------
# Bundler
# -------
# Wait for all defined services to be fully available by probing their health
# status, even when using `docker compose up --detach`.
# https://marcopeg.com/2019/docker-compose-healthcheck/
start-dependencies:
image: docker.io/dadarek/wait-for-dependencies
depends_on:
setup:
condition: service_completed_successfully