build: dockerize app, migrate on boot
This commit is contained in:
@@ -13,7 +13,11 @@ use axum::{
|
||||
};
|
||||
use sqlx::PgPool;
|
||||
use tower_cookies::CookieManagerLayer;
|
||||
use tower_http::{cors::CorsLayer, services::ServeDir, trace::TraceLayer};
|
||||
use tower_http::{
|
||||
cors::CorsLayer,
|
||||
services::{ServeDir, ServeFile},
|
||||
trace::TraceLayer,
|
||||
};
|
||||
use tracing::info;
|
||||
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
||||
|
||||
@@ -39,8 +43,10 @@ async fn main() -> Result<()> {
|
||||
.init();
|
||||
|
||||
dotenvy::dotenv().ok();
|
||||
|
||||
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
|
||||
let pool = PgPool::connect(&database_url).await.unwrap();
|
||||
sqlx::migrate!().run(&pool).await?;
|
||||
let file_repository = FileRepository::new(pool.clone())?;
|
||||
let routes_file = routes_file(file_repository.clone())
|
||||
.route_layer(middleware::from_fn(mw_require_auth))
|
||||
@@ -67,7 +73,9 @@ async fn main() -> Result<()> {
|
||||
.allow_credentials(true)
|
||||
.allow_headers([header::CONTENT_TYPE]),
|
||||
)
|
||||
.fallback_service(ServeDir::new("./"));
|
||||
.fallback_service(
|
||||
ServeDir::new("/app/static").fallback(ServeFile::new("/app/static/index.html")),
|
||||
);
|
||||
|
||||
let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await?;
|
||||
info!("listening on {}", listener.local_addr().unwrap());
|
||||
|
||||
Reference in New Issue
Block a user