BLOG-65 Establish beta environment #66
@ -11,5 +11,12 @@ FROM alpine:latest AS runner
|
||||
WORKDIR /app
|
||||
COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/server .
|
||||
EXPOSE 8080
|
||||
ENV DATABASE_URL=postgres://postgres@localhost:5432/postgres
|
||||
ENV RUST_LOG=info
|
||||
ENV HOST=0.0.0.0
|
||||
ENV PORT=8080
|
||||
ENV DATABASE_HOST=127.0.0.1
|
||||
ENV DATABASE_PORT=5432
|
||||
ENV DATABASE_USER=postgres
|
||||
ENV DATABASE_PASSWORD=
|
||||
ENV DATABASE_NAME=postgres
|
||||
CMD ["./server"]
|
||||
|
@ -16,15 +16,28 @@ async fn main() -> std::io::Result<()> {
|
||||
|
||||
let db_pool = init_database().await;
|
||||
|
||||
let host = env::var("HOST").unwrap_or_else(|_| "0.0.0.0".to_string());
|
||||
let port = env::var("PORT")
|
||||
.unwrap_or_else(|_| "8080".to_string())
|
||||
.parse::<u16>()
|
||||
.unwrap();
|
||||
|
||||
HttpServer::new(move || create_app(db_pool.clone()))
|
||||
.bind(("0.0.0.0", 8080))?
|
||||
.bind((host, port))?
|
||||
.run()
|
||||
.await
|
||||
}
|
||||
|
||||
async fn init_database() -> Pool<Postgres> {
|
||||
let database_url = env::var("DATABASE_URL")
|
||||
.unwrap_or_else(|_| "postgres://postgres@localhost:5432/postgres".to_string());
|
||||
let host = env::var("DATABASE_HOST").unwrap_or_else(|_| "127.0.0.1".to_string());
|
||||
let port = env::var("DATABASE_PORT").unwrap_or_else(|_| "5432".to_string());
|
||||
let user = env::var("DATABASE_USER").unwrap_or_else(|_| "postgres".to_string());
|
||||
let password = env::var("DATABASE_PASSWORD").unwrap_or_else(|_| "".to_string());
|
||||
let dbname = env::var("DATABASE_NAME").unwrap_or_else(|_| "postgres".to_string());
|
||||
let database_url = format!(
|
||||
"postgres://{}:{}@{}:{}/{}",
|
||||
user, password, host, port, dbname
|
||||
);
|
||||
|
||||
let db_pool = PgPoolOptions::new()
|
||||
.max_connections(5)
|
||||
|
@ -23,4 +23,5 @@ EXPOSE 3000
|
||||
ENV NODE_ENV=production
|
||||
ENV HOSTNAME=0.0.0.0
|
||||
ENV PORT=3000
|
||||
ENV PUBLIC_API_BASE_URL=http://127.0.0.1:8080/
|
||||
CMD ["node", "build"]
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { env } from '$env/dynamic/public';
|
||||
|
||||
export abstract class Environment {
|
||||
static readonly API_BASE_URL = env.PUBLIC_BACKEND_URL ?? 'http://localhost:5173/api';
|
||||
static readonly API_BASE_URL = env.PUBLIC_API_BASE_URL ?? 'http://localhost:5173/api/';
|
||||
}
|
||||
|
@ -4,8 +4,7 @@ import { PostInfoResponseDto } from '$lib/post/adapter/gateway/postInfoResponseD
|
||||
|
||||
export class PostApiServiceImpl implements PostApiService {
|
||||
async getAllPosts(): Promise<PostInfoResponseDto[]> {
|
||||
const url = new URL(Environment.API_BASE_URL);
|
||||
url.pathname += '/post/all';
|
||||
const url = new URL('post/all', Environment.API_BASE_URL);
|
||||
|
||||
const response = await fetch(url.href);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user