Refactor Docker entrypoint script by removing debug logging functions and simplifying database connection checks. Streamline schema application and seeding processes for improved clarity and efficiency.

This commit is contained in:
2026-05-23 13:21:12 +02:00
parent 587eb4502a
commit 830950ad66
2 changed files with 3 additions and 123 deletions
+3 -88
View File
@@ -3,111 +3,26 @@ set -euo pipefail
cd /var/www/html
# region agent log
fc_debug_log() {
local hypothesis="$1"
local message="$2"
local data_json="${3:-{}}"
local data_b64
data_b64=$(printf '%s' "$data_json" | base64 | tr -d '\n')
FC_DEBUG_HYPOTHESIS="$hypothesis" FC_DEBUG_MESSAGE="$message" FC_DEBUG_DATA_B64="$data_b64" php -r '
$json = base64_decode(getenv("FC_DEBUG_DATA_B64") ?: "");
$data = json_decode($json, true);
if (!is_array($data) && str_ends_with($json, "}}")) {
$data = json_decode(substr($json, 0, -1), true);
}
$payload = [
"sessionId" => "885d37",
"runId" => "coolify-bad-gateway",
"hypothesisId" => getenv("FC_DEBUG_HYPOTHESIS") ?: "",
"location" => "docker/entrypoint.sh",
"message" => getenv("FC_DEBUG_MESSAGE") ?: "",
"data" => [
"raw_json" => $json,
"parsed" => is_array($data) ? $data : null,
],
"timestamp" => (int) round(microtime(true) * 1000),
];
$line = json_encode($payload, JSON_UNESCAPED_SLASHES) . PHP_EOL;
@file_put_contents("/var/www/html/debug-885d37.log", $line, FILE_APPEND);
fwrite(STDERR, "agent_debug " . $line);
'
}
# endregion
echo "[flixcooks] Waiting for database..."
TRIES=0
MAX_TRIES="${DB_WAIT_MAX_TRIES:-30}"
start_data=$(php -r 'echo json_encode([
"database_url_present" => getenv("DATABASE_URL") !== false && getenv("DATABASE_URL") !== "",
"run_db_seed" => getenv("RUN_DB_SEED") ?: "",
"db_wait_max_tries" => getenv("DB_WAIT_MAX_TRIES") ?: "30",
"entrypoint_args" => array_slice($argv, 1),
"schema_file_exists" => file_exists("/var/www/html/scripts/schema.sql"),
"seed_file_exists" => file_exists("/var/www/html/data/recipes.json"),
]);' -- "$@")
fc_debug_log "H1,H2,H4" "entrypoint started" "$start_data"
until db_check_output=$(php scripts/db-check.php 2>&1); do
until php scripts/db-check.php >/dev/null 2>&1; do
TRIES=$((TRIES + 1))
fail_data=$(php -r 'echo json_encode([
"attempt" => (int) $argv[1],
"max_tries" => (int) $argv[2],
"db_check_output" => $argv[3],
]);' -- "$TRIES" "$MAX_TRIES" "$db_check_output")
fc_debug_log "H1" "db-check failed while waiting" "$fail_data"
if [ "$TRIES" -ge "$MAX_TRIES" ]; then
echo "[flixcooks] Database not reachable after ${MAX_TRIES} attempts." >&2
fc_debug_log "H1" "entrypoint exiting because database never became reachable" "$fail_data"
exit 1
fi
sleep 2
done
success_data=$(php -r 'echo json_encode([
"attempts_before_success" => (int) $argv[1],
"db_check_output" => $argv[2],
]);' -- "$TRIES" "$db_check_output")
fc_debug_log "H1" "db-check succeeded" "$success_data"
echo "[flixcooks] Applying schema..."
if schema_output=$(php -r "require 'helpers.php'; require_database(); echo \"schema ok\n\";" 2>&1); then
schema_data=$(php -r 'echo json_encode(["schema_output" => $argv[1]]);' -- "$schema_output")
fc_debug_log "H2,H4" "schema apply succeeded" "$schema_data"
else
code=$?
schema_data=$(php -r 'echo json_encode(["exit_code" => (int) $argv[1], "schema_output" => $argv[2]]);' -- "$code" "$schema_output")
fc_debug_log "H2,H4" "schema apply failed, entrypoint exiting" "$schema_data"
echo "$schema_output" >&2
exit "$code"
fi
php -r "require 'helpers.php'; require_database(); echo \"schema ok\n\";"
if [ "${RUN_DB_SEED:-false}" = "true" ]; then
echo "[flixcooks] Seeding recipes from data/recipes.json..."
if seed_output=$(php scripts/db-seed.php 2>&1); then
seed_data=$(php -r 'echo json_encode(["seed_output" => $argv[1]]);' -- "$seed_output")
fc_debug_log "H4" "seed succeeded" "$seed_data"
else
code=$?
seed_data=$(php -r 'echo json_encode(["exit_code" => (int) $argv[1], "seed_output" => $argv[2]]);' -- "$code" "$seed_output")
fc_debug_log "H4" "seed failed, entrypoint exiting" "$seed_data"
echo "$seed_output" >&2
exit "$code"
fi
else
fc_debug_log "H4" "seed skipped" '{"run_db_seed":"false"}'
php scripts/db-seed.php
fi
echo "[flixcooks] Starting Apache..."
port_data=$(php -r 'echo json_encode([
"env_port" => getenv("PORT") ?: "",
"env_host" => getenv("HOST") ?: "",
"apache_document_root" => getenv("APACHE_DOCUMENT_ROOT") ?: "",
"expected_container_port" => 80,
"coolify_hint" => "Application port must be 80",
]);')
fc_debug_log "H3,H6" "proxy port context before apache start" "$port_data"
apache_config_output=$(apache2ctl -S 2>&1 || true)
apache_config_data=$(php -r 'echo json_encode(["apache2ctl_S" => $argv[1]]);' -- "$apache_config_output")
fc_debug_log "H3,H6" "apache virtualhost config before start" "$apache_config_data"
fc_debug_log "H3" "executing web server command" "$(php -r 'echo json_encode(["command" => array_slice($argv, 1)]);' -- "$@")"
exec "$@"