diff --git a/bin/compose-core b/bin/compose-core index e56228a..301c66f 100755 --- a/bin/compose-core +++ b/bin/compose-core @@ -678,13 +678,13 @@ get_service_type() { cat "$cache_file" return 0 fi - - charm=$(get_service_charm "$service") || return 1 + master_target_service="$(get_top_master_service_for_service "$service")" || return 1 + charm=$(get_service_charm "$master_target_service") || return 1 metadata=$(charm.metadata "$charm") || return 1 printf "%s" "$metadata" | shyaml get-value type service 2>/dev/null | tee "$cache_file" } - +export -f get_service_type are_files_locked_in_dir() { local dir="$1" device hdev ldev @@ -1059,6 +1059,7 @@ get_docker_compose_links() { master_target_service="$(get_top_master_service_for_service "$target_service")" || return 1 [ "$master_service" == "$master_target_service" ] && continue type="$(get_service_type "$target_service")" || return 1 + [ "$type" == "stub" ] && continue [ "$type" == "run-once" ] && continue if [ "$tech_dep" == "reversed" ]; then deps+=("$(echo -en "$master_target_service:\n links:\n - $master_service")") @@ -1124,6 +1125,9 @@ _get_docker_compose_service_mixin() { cat "$cache_file" return 0 fi + type=$(get_service_type "$service") || return 1 + [ "$type" == "stub" ] && return 0 + master_service=$(get_top_master_service_for_service "$service") || { err "Failed to get top master service for service $DARKYELLOW$service$NORMAL" return 1 @@ -1562,11 +1566,14 @@ run_service_hook () { charm=$(get_service_charm "$subservice") || return 1 charm.has_hook "$charm" "$action" >/dev/null || continue + type=$(get_service_type "$subservice") || return 1 PROJECT_NAME=$(get_default_project_name) || return 1 MASTER_BASE_SERVICE_NAME=$(get_top_master_service_for_service "$subservice") || return 1 MASTER_BASE_CHARM_NAME=$(get_service_charm "$MASTER_BASE_SERVICE_NAME") || return 1 - DOCKER_BASE_IMAGE=$(service_base_docker_image "$MASTER_BASE_SERVICE_NAME") || return 1 + if [ "$type" != "stub" ]; then + DOCKER_BASE_IMAGE=$(service_base_docker_image "$MASTER_BASE_SERVICE_NAME") || return 1 + fi Wrap "${wrap_opts[@]}" -d "running $YELLOW$action$NORMAL hook of $DARKYELLOW$subservice$NORMAL in charm $DARKPINK$charm$NORMAL" <