Commit ·
dcb7e13
1
Parent(s): ac4ea8b
Add health check endpoint and fix port
Browse files- Dockerfile +1 -0
- src/main.rs +8 -6
Dockerfile
CHANGED
|
@@ -12,4 +12,5 @@ RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/
|
|
| 12 |
COPY --from=builder /app/target/release/rustvital-amd /usr/local/bin/rustvital-amd
|
| 13 |
EXPOSE 7860
|
| 14 |
ENV RUST_LOG=info
|
|
|
|
| 15 |
CMD ["rustvital-amd"]
|
|
|
|
| 12 |
COPY --from=builder /app/target/release/rustvital-amd /usr/local/bin/rustvital-amd
|
| 13 |
EXPOSE 7860
|
| 14 |
ENV RUST_LOG=info
|
| 15 |
+
ENV PORT=7860
|
| 16 |
CMD ["rustvital-amd"]
|
src/main.rs
CHANGED
|
@@ -1,27 +1,29 @@
|
|
| 1 |
-
use axum::{routing::post, Router};
|
| 2 |
use tower_http::trace::TraceLayer;
|
| 3 |
use tracing_subscriber::EnvFilter;
|
| 4 |
|
| 5 |
-
// Use the library crate to get the handler
|
| 6 |
use rustvital_amd::handlers;
|
| 7 |
|
| 8 |
#[tokio::main]
|
| 9 |
async fn main() -> anyhow::Result<()> {
|
| 10 |
-
// Load .env file (ignore if missing)
|
| 11 |
dotenvy::dotenv().ok();
|
| 12 |
|
| 13 |
-
// Initialise tracing (respects RUST_LOG from env)
|
| 14 |
tracing_subscriber::fmt()
|
| 15 |
.with_env_filter(EnvFilter::from_default_env().add_directive("rustvital_amd=debug".parse()?))
|
| 16 |
.init();
|
| 17 |
|
| 18 |
-
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
let app = Router::new()
|
|
|
|
|
|
|
| 21 |
.route("/triage", post(handlers::triage::handle))
|
| 22 |
.layer(TraceLayer::new_for_http());
|
| 23 |
|
| 24 |
-
let listener = tokio::net::TcpListener::bind(
|
| 25 |
axum::serve(listener, app).await?;
|
| 26 |
Ok(())
|
| 27 |
}
|
|
|
|
| 1 |
+
use axum::{routing::{get, post}, Router};
|
| 2 |
use tower_http::trace::TraceLayer;
|
| 3 |
use tracing_subscriber::EnvFilter;
|
| 4 |
|
|
|
|
| 5 |
use rustvital_amd::handlers;
|
| 6 |
|
| 7 |
#[tokio::main]
|
| 8 |
async fn main() -> anyhow::Result<()> {
|
|
|
|
| 9 |
dotenvy::dotenv().ok();
|
| 10 |
|
|
|
|
| 11 |
tracing_subscriber::fmt()
|
| 12 |
.with_env_filter(EnvFilter::from_default_env().add_directive("rustvital_amd=debug".parse()?))
|
| 13 |
.init();
|
| 14 |
|
| 15 |
+
let port = std::env::var("PORT").unwrap_or_else(|_| "3000".to_string());
|
| 16 |
+
let addr = format!("0.0.0.0:{}", port);
|
| 17 |
+
|
| 18 |
+
tracing::info!("Starting RustVital-AMD server on {}", addr);
|
| 19 |
|
| 20 |
let app = Router::new()
|
| 21 |
+
.route("/", get(|| async { "RustVital-AMD is running" }))
|
| 22 |
+
.route("/health", get(|| async { "healthy" }))
|
| 23 |
.route("/triage", post(handlers::triage::handle))
|
| 24 |
.layer(TraceLayer::new_for_http());
|
| 25 |
|
| 26 |
+
let listener = tokio::net::TcpListener::bind(&addr).await?;
|
| 27 |
axum::serve(listener, app).await?;
|
| 28 |
Ok(())
|
| 29 |
}
|