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