Compare commits

...

2 Commits

Author SHA256 Message Date
7194eb88fa - fix: docker libssl in slim image
- fix: api service default rest api address and port was incorrect
- update: database service to use dedicated function for running the health check api
2024-12-14 05:54:32 -05:00
c17d498b93 - fix: docker containers would fail to load libssl3
- add: missing character service docker file
2024-12-14 05:31:33 -05:00
8 changed files with 145 additions and 26 deletions

View File

@@ -1,12 +1,31 @@
FROM rust:1.83 as builder
FROM rust:1.83 AS builder
LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
protobuf-compiler \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/api-service
COPY . .
COPY ./api-service .
RUN cargo build --release
FROM debian:bullseye-slim
FROM debian:bookworm-slim
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
pkg-config \
libssl-dev \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/src/api-service/target/release/api-service /usr/local/bin/api-service

View File

@@ -62,8 +62,8 @@ pub async fn serve_rest_api(
.with_state(grpc_client)
.layer(cors);
let addr = env::var("LISTEN_ADDR").unwrap_or_else(|_| "127.0.0.1".to_string());
let port = env::var("API_SERVICE_PORT").unwrap_or_else(|_| "50050".to_string());
let addr = env::var("LISTEN_ADDR").unwrap_or_else(|_| "0.0.0.0".to_string());
let port = env::var("API_SERVICE_PORT").unwrap_or_else(|_| "8080".to_string());
let listener = tokio::net::TcpListener::bind(format!("{}:{}", addr, port))
.await
.unwrap();

View File

@@ -1,18 +1,36 @@
# Use Rust official image for building the application
FROM rust:1.83 as builder
FROM rust:1.83 AS builder
LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
protobuf-compiler
# Set the working directory
WORKDIR /usr/src/auth-service
# Copy the project files
COPY . .
COPY ./auth-service .
# Build the application in release mode
RUN cargo build --release
# Use a minimal base image to run the application
FROM debian:bullseye-slim
FROM debian:bookworm-slim
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
pkg-config \
libssl-dev \
&& rm -rf /var/lib/apt/lists/*
# Copy the compiled binary
COPY --from=builder /usr/src/auth-service/target/release/auth-service /usr/local/bin/auth-service

View File

@@ -0,0 +1,33 @@
FROM rust:1.83 AS builder
LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
protobuf-compiler
WORKDIR /usr/src/character-service
COPY ./character-service .
RUN cargo build --release
FROM debian:bookworm-slim
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
pkg-config \
libssl-dev \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/src/character-service/target/release/character-service /usr/local/bin/character-service
EXPOSE 50054
CMD ["character-service"]

View File

@@ -1,14 +1,32 @@
FROM rust:1.83 as builder
FROM rust:1.83 AS builder
LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
protobuf-compiler
WORKDIR /usr/src/database-service
COPY . .
COPY ./database-service .
RUN cargo build --release
FROM debian:bullseye-slim
FROM debian:bookworm-slim
COPY --from=builder /usr/src/database-service/target/release/api-service /usr/local/bin/database-service
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
pkg-config \
libssl-dev \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/src/database-service/target/release/database-service /usr/local/bin/database-service
EXPOSE 50052

View File

@@ -53,12 +53,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
)
.await?;
// Start health-check endpoint
let health_route = warp::path!("health")
.map(|| warp::reply::with_status("OK", warp::http::StatusCode::OK));
tokio::spawn(warp::serve(health_route).run(health_check_endpoint_addr.to_socket_addrs()?.next().unwrap()));
consul_registration::start_health_check(addr.as_str()).await?;
let full_addr = format!("{}:{}", &addr, port);
let address = full_addr.parse().expect("Invalid address");

View File

@@ -1,14 +1,32 @@
FROM rust:1.83 as builder
FROM rust:1.83 AS builder
LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
protobuf-compiler
WORKDIR /usr/src/packet-service
COPY . .
COPY ./packet-service .
RUN cargo build --release
FROM debian:bullseye-slim
FROM debian:bookworm-slim
COPY --from=builder /usr/src/packet-service/target/release/api-service /usr/local/bin/packet-service
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
pkg-config \
libssl-dev \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/src/packet-service/target/release/packet-service /usr/local/bin/packet-service
EXPOSE 4000

View File

@@ -1,14 +1,32 @@
FROM rust:1.83 as builder
FROM rust:1.83 AS builder
LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
protobuf-compiler
WORKDIR /usr/src/world-service
COPY . .
COPY ./world-service .
RUN cargo build --release
FROM debian:bullseye-slim
FROM debian:bookworm-slim
COPY --from=builder /usr/src/database-service/target/release/world-service /usr/local/bin/world-service
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
pkg-config \
libssl-dev \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/src/world-service/target/release/world-service /usr/local/bin/world-service
EXPOSE 50054