diff --git a/Cargo.lock b/Cargo.lock index 4274d0ea4..04f4fb645 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5715,6 +5715,7 @@ dependencies = [ "thiserror 1.0.69", "tokio", "tokio-test", + "toml", "tracing", "tracing-subscriber", "trading_engine", diff --git a/services/api_gateway/Dockerfile b/services/api_gateway/Dockerfile index e8596c77e..b22b78483 100644 --- a/services/api_gateway/Dockerfile +++ b/services/api_gateway/Dockerfile @@ -11,6 +11,8 @@ RUN apt-get update && apt-get install -y \ pkg-config \ libssl-dev \ protobuf-compiler \ + perl \ + make \ && rm -rf /var/lib/apt/lists/* # Set working directory @@ -19,6 +21,9 @@ WORKDIR /build # Copy workspace manifests COPY Cargo.toml Cargo.lock ./ +# Copy sqlx offline cache for compile-time query verification +COPY .sqlx ./.sqlx + # Copy workspace members to satisfy manifest dependencies COPY trading_engine ./trading_engine COPY risk ./risk @@ -36,7 +41,11 @@ COPY model_loader ./model_loader COPY market-data ./market-data COPY database ./database COPY config ./config +COPY web-gateway ./web-gateway +COPY ctrader-openapi ./ctrader-openapi +COPY foxhunt-deploy ./foxhunt-deploy COPY services/backtesting_service ./services/backtesting_service +COPY services/broker_gateway_service ./services/broker_gateway_service COPY services/trading_service ./services/trading_service COPY services/ml_training_service ./services/ml_training_service COPY services/data_acquisition_service ./services/data_acquisition_service @@ -46,7 +55,9 @@ COPY services/load_tests ./services/load_tests COPY services/stress_tests ./services/stress_tests COPY services/integration_tests ./services/integration_tests COPY tests ./tests -COPY migrations ./migrations + +# Enable sqlx offline mode to use cached query metadata +ENV SQLX_OFFLINE=true # Build the application RUN cargo build --release -p api_gateway diff --git a/services/backtesting_service/Dockerfile b/services/backtesting_service/Dockerfile index 08eeb1160..5e06ff16a 100644 --- a/services/backtesting_service/Dockerfile +++ b/services/backtesting_service/Dockerfile @@ -11,6 +11,8 @@ RUN apt-get update && apt-get install -y \ pkg-config \ libssl-dev \ protobuf-compiler \ + perl \ + make \ && rm -rf /var/lib/apt/lists/* # Set working directory @@ -24,6 +26,9 @@ ENV CUDA_COMPUTE_CAP=86 # Copy workspace manifests COPY Cargo.toml Cargo.lock ./ +# Copy sqlx offline cache for compile-time query verification +COPY .sqlx ./.sqlx + # Copy workspace members to satisfy manifest dependencies COPY trading_engine ./trading_engine COPY risk ./risk @@ -41,7 +46,11 @@ COPY model_loader ./model_loader COPY market-data ./market-data COPY database ./database COPY config ./config +COPY web-gateway ./web-gateway +COPY ctrader-openapi ./ctrader-openapi +COPY foxhunt-deploy ./foxhunt-deploy COPY services/backtesting_service ./services/backtesting_service +COPY services/broker_gateway_service ./services/broker_gateway_service COPY services/trading_service ./services/trading_service COPY services/ml_training_service ./services/ml_training_service COPY services/data_acquisition_service ./services/data_acquisition_service @@ -51,7 +60,9 @@ COPY services/load_tests ./services/load_tests COPY services/stress_tests ./services/stress_tests COPY services/integration_tests ./services/integration_tests COPY tests ./tests -COPY migrations ./migrations + +# Enable sqlx offline mode to use cached query metadata +ENV SQLX_OFFLINE=true # Build the application RUN cargo build --release -p backtesting_service diff --git a/services/broker_gateway_service/Dockerfile.production b/services/broker_gateway_service/Dockerfile.production index d74153079..580eaf2a7 100644 --- a/services/broker_gateway_service/Dockerfile.production +++ b/services/broker_gateway_service/Dockerfile.production @@ -24,10 +24,43 @@ WORKDIR /app # Copy workspace manifests first for dependency caching COPY Cargo.toml Cargo.lock ./ -# Copy all workspace members (needed for dependency resolution) +# Copy sqlx offline cache for compile-time query verification +COPY .sqlx ./.sqlx + +# Copy all workspace members (needed for workspace resolution) +COPY trading_engine ./trading_engine +COPY risk ./risk +COPY risk-data ./risk-data +COPY trading-data ./trading-data +COPY tli ./tli +COPY ml ./ml +COPY ml-data ./ml-data +COPY data ./data +COPY backtesting ./backtesting +COPY adaptive-strategy ./adaptive-strategy COPY common ./common +COPY storage ./storage +COPY model_loader ./model_loader +COPY market-data ./market-data +COPY database ./database COPY config ./config +COPY web-gateway ./web-gateway +COPY ctrader-openapi ./ctrader-openapi +COPY foxhunt-deploy ./foxhunt-deploy +COPY services/backtesting_service ./services/backtesting_service COPY services/broker_gateway_service ./services/broker_gateway_service +COPY services/trading_service ./services/trading_service +COPY services/ml_training_service ./services/ml_training_service +COPY services/data_acquisition_service ./services/data_acquisition_service +COPY services/trading_agent_service ./services/trading_agent_service +COPY services/api_gateway ./services/api_gateway +COPY services/load_tests ./services/load_tests +COPY services/stress_tests ./services/stress_tests +COPY services/integration_tests ./services/integration_tests +COPY tests ./tests + +# Enable sqlx offline mode to use cached query metadata +ENV SQLX_OFFLINE=true # Build dependencies (this layer is cached unless dependencies change) # Use BuildKit cache mount for cargo registry diff --git a/services/ml_training_service/Dockerfile b/services/ml_training_service/Dockerfile index d24f8645a..63d7c0ef1 100644 --- a/services/ml_training_service/Dockerfile +++ b/services/ml_training_service/Dockerfile @@ -56,7 +56,11 @@ COPY model_loader ./model_loader COPY market-data ./market-data COPY database ./database COPY config ./config +COPY web-gateway ./web-gateway +COPY ctrader-openapi ./ctrader-openapi +COPY foxhunt-deploy ./foxhunt-deploy COPY services/backtesting_service ./services/backtesting_service +COPY services/broker_gateway_service ./services/broker_gateway_service COPY services/trading_service ./services/trading_service COPY services/ml_training_service ./services/ml_training_service COPY services/api_gateway ./services/api_gateway @@ -66,7 +70,6 @@ COPY services/integration_tests ./services/integration_tests COPY services/data_acquisition_service ./services/data_acquisition_service COPY services/trading_agent_service ./services/trading_agent_service COPY tests ./tests -COPY migrations ./migrations # Enable sqlx offline mode to use cached query metadata ENV SQLX_OFFLINE=true diff --git a/services/trading_agent_service/Dockerfile b/services/trading_agent_service/Dockerfile index aaa1dfdc6..9449c3b6b 100644 --- a/services/trading_agent_service/Dockerfile +++ b/services/trading_agent_service/Dockerfile @@ -6,6 +6,8 @@ RUN apt-get update && apt-get install -y \ pkg-config \ libssl-dev \ protobuf-compiler \ + perl \ + make \ && rm -rf /var/lib/apt/lists/* WORKDIR /build @@ -38,7 +40,11 @@ COPY model_loader ./model_loader COPY market-data ./market-data COPY database ./database COPY config ./config +COPY web-gateway ./web-gateway +COPY ctrader-openapi ./ctrader-openapi +COPY foxhunt-deploy ./foxhunt-deploy COPY services/backtesting_service ./services/backtesting_service +COPY services/broker_gateway_service ./services/broker_gateway_service COPY services/trading_service ./services/trading_service COPY services/ml_training_service ./services/ml_training_service COPY services/data_acquisition_service ./services/data_acquisition_service @@ -48,7 +54,6 @@ COPY services/load_tests ./services/load_tests COPY services/stress_tests ./services/stress_tests COPY services/integration_tests ./services/integration_tests COPY tests ./tests -COPY migrations ./migrations # Enable sqlx offline mode to use cached query metadata ENV SQLX_OFFLINE=true diff --git a/services/trading_service/Dockerfile b/services/trading_service/Dockerfile index 35f31c791..a4bc26bbc 100644 --- a/services/trading_service/Dockerfile +++ b/services/trading_service/Dockerfile @@ -11,6 +11,8 @@ RUN apt-get update && apt-get install -y \ pkg-config \ libssl-dev \ protobuf-compiler \ + perl \ + make \ && rm -rf /var/lib/apt/lists/* # Set working directory @@ -24,6 +26,9 @@ ENV CUDA_COMPUTE_CAP=86 # Copy workspace manifests COPY Cargo.toml Cargo.lock ./ +# Copy sqlx offline cache for compile-time query verification +COPY .sqlx ./.sqlx + # Copy workspace members to satisfy manifest dependencies COPY trading_engine ./trading_engine COPY risk ./risk @@ -41,7 +46,11 @@ COPY model_loader ./model_loader COPY market-data ./market-data COPY database ./database COPY config ./config +COPY web-gateway ./web-gateway +COPY ctrader-openapi ./ctrader-openapi +COPY foxhunt-deploy ./foxhunt-deploy COPY services/backtesting_service ./services/backtesting_service +COPY services/broker_gateway_service ./services/broker_gateway_service COPY services/trading_service ./services/trading_service COPY services/ml_training_service ./services/ml_training_service COPY services/data_acquisition_service ./services/data_acquisition_service @@ -51,7 +60,9 @@ COPY services/load_tests ./services/load_tests COPY services/stress_tests ./services/stress_tests COPY services/integration_tests ./services/integration_tests COPY tests ./tests -COPY migrations ./migrations + +# Enable sqlx offline mode to use cached query metadata +ENV SQLX_OFFLINE=true # Build the application RUN cargo build --release -p trading_service