diff --git a/api-service/Dockerfile b/api-service/Dockerfile index e043bea..b919402 100644 --- a/api-service/Dockerfile +++ b/api-service/Dockerfile @@ -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 diff --git a/auth-service/Dockerfile b/auth-service/Dockerfile index f28ff9f..fb402e2 100644 --- a/auth-service/Dockerfile +++ b/auth-service/Dockerfile @@ -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 diff --git a/character-service/Dockerfile b/character-service/Dockerfile new file mode 100644 index 0000000..fdc8bb4 --- /dev/null +++ b/character-service/Dockerfile @@ -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"] \ No newline at end of file diff --git a/database-service/Dockerfile b/database-service/Dockerfile index a472915..037abcb 100644 --- a/database-service/Dockerfile +++ b/database-service/Dockerfile @@ -1,14 +1,32 @@ 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 diff --git a/packet-service/Dockerfile b/packet-service/Dockerfile index 5cc6de9..e81bfcf 100644 --- a/packet-service/Dockerfile +++ b/packet-service/Dockerfile @@ -1,14 +1,32 @@ 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 diff --git a/world-service/Dockerfile b/world-service/Dockerfile index a4fa776..f68dc4b 100644 --- a/world-service/Dockerfile +++ b/world-service/Dockerfile @@ -1,14 +1,32 @@ 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