@startuml
title Before: Relative include_str path can break in Docker builds
skinparam backgroundColor #FAFAFA
skinparam componentStyle rectangle
skinparam defaultFontName Consolas

package "Builder image" #FFE8E8 {
  component "COPY Cargo/crates/src/scripts" as copyCode
  component "COPY sql/ (may drift or be missing)" as copySql
  component "cargo build --release --bin server --features server" as build
}

package "Compile step" #FFF4E6 {
  component "server.rs\ninclude_str!(\"../../sql/provision.sql\")" as includeRelative
}

artifact "/app/sql/provision.sql" as provision

copyCode --> build
copySql --> build
build --> includeRelative
includeRelative --> provision : compile-time read

note right of includeRelative
Path is source-file relative.
If layout/build context drifts,
compile fails with os error 2.
end note
@enduml
