From 743743ceb677f3290a36d04a465443cd4ae01a962f528db67180f841c6fa01bb Mon Sep 17 00:00:00 2001 From: raven <7156279+RavenX8@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:30:28 -0500 Subject: [PATCH] - update: docker base containers to use alpine. This drops the final containers from ~100mb to ~17mb --- api-service/Dockerfile | 19 ++++--------------- auth-service/Dockerfile | 19 ++++--------------- character-service/Dockerfile | 19 ++++--------------- database-service/Dockerfile | 19 ++++--------------- packet-service/Dockerfile | 19 ++++--------------- session-service/Dockerfile | 19 ++++--------------- world-service/Dockerfile | 19 ++++--------------- 7 files changed, 28 insertions(+), 105 deletions(-) diff --git a/api-service/Dockerfile b/api-service/Dockerfile index f8c0a53..ce2541d 100644 --- a/api-service/Dockerfile +++ b/api-service/Dockerfile @@ -1,13 +1,7 @@ -FROM rust:1.83-slim-bookworm AS builder +FROM alpine:3 AS builder LABEL authors="raven" -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive \ - apt-get install --no-install-recommends --assume-yes \ - pkg-config \ - libssl-dev \ - protobuf-compiler \ - && rm -rf /var/lib/apt/lists/* +RUN apk add --no-cache rust cargo openssl-dev protoc WORKDIR /usr/src/utils COPY ./utils . @@ -20,14 +14,9 @@ COPY ./api-service . RUN cargo build --release -FROM debian:bookworm-slim +FROM alpine:3 -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/* +RUN apk add --no-cache libssl3 libgcc 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 c5ab789..aa230c1 100644 --- a/auth-service/Dockerfile +++ b/auth-service/Dockerfile @@ -1,13 +1,7 @@ -FROM rust:1.83-slim-bookworm AS builder +FROM alpine:3 AS builder LABEL authors="raven" -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive \ - apt-get install --no-install-recommends --assume-yes \ - pkg-config \ - libssl-dev \ - protobuf-compiler \ - && rm -rf /var/lib/apt/lists/* +RUN apk add --no-cache rust cargo openssl-dev protoc WORKDIR /usr/src/utils COPY ./utils . @@ -25,14 +19,9 @@ COPY ./auth-service . RUN cargo build --release # Use a minimal base image to run the application -FROM debian:bookworm-slim +FROM alpine:3 -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/* +RUN apk add --no-cache libssl3 libgcc # 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 index d29902f..0d552dc 100644 --- a/character-service/Dockerfile +++ b/character-service/Dockerfile @@ -1,13 +1,7 @@ -FROM rust:1.83-slim-bookworm AS builder +FROM alpine:3 AS builder LABEL authors="raven" -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive \ - apt-get install --no-install-recommends --assume-yes \ - pkg-config \ - libssl-dev \ - protobuf-compiler \ - && rm -rf /var/lib/apt/lists/* +RUN apk add --no-cache rust cargo openssl-dev protoc WORKDIR /usr/src/utils COPY ./utils . @@ -20,14 +14,9 @@ COPY ./character-service . RUN cargo build --release -FROM debian:bookworm-slim +FROM alpine:3 -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/* +RUN apk add --no-cache libssl3 libgcc COPY --from=builder /usr/src/character-service/target/release/character-service /usr/local/bin/character-service diff --git a/database-service/Dockerfile b/database-service/Dockerfile index c340a18..2357be4 100644 --- a/database-service/Dockerfile +++ b/database-service/Dockerfile @@ -1,13 +1,7 @@ -FROM rust:1.83-slim-bookworm AS builder +FROM alpine:3 AS builder LABEL authors="raven" -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive \ - apt-get install --no-install-recommends --assume-yes \ - pkg-config \ - libssl-dev \ - protobuf-compiler \ - && rm -rf /var/lib/apt/lists/* +RUN apk add --no-cache rust cargo openssl-dev protoc WORKDIR /usr/src/utils COPY ./utils . @@ -20,14 +14,9 @@ COPY ./database-service . RUN cargo build --release -FROM debian:bookworm-slim +FROM alpine:3 -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/* +RUN apk add --no-cache libssl3 libgcc COPY --from=builder /usr/src/database-service/target/release/database-service /usr/local/bin/database-service diff --git a/packet-service/Dockerfile b/packet-service/Dockerfile index c6d8030..0cec58b 100644 --- a/packet-service/Dockerfile +++ b/packet-service/Dockerfile @@ -1,13 +1,7 @@ -FROM rust:1.83-slim-bookworm AS builder +FROM alpine:3 AS builder LABEL authors="raven" -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive \ - apt-get install --no-install-recommends --assume-yes \ - pkg-config \ - libssl-dev \ - protobuf-compiler \ - && rm -rf /var/lib/apt/lists/* +RUN apk add --no-cache rust cargo openssl-dev protoc WORKDIR /usr/src/utils COPY ./utils . @@ -20,14 +14,9 @@ COPY ./packet-service . RUN cargo build --release -FROM debian:bookworm-slim +FROM alpine:3 -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/* +RUN apk add --no-cache libssl3 libgcc COPY --from=builder /usr/src/packet-service/target/release/packet-service /usr/local/bin/packet-service diff --git a/session-service/Dockerfile b/session-service/Dockerfile index 09fa5c6..ec4bc03 100644 --- a/session-service/Dockerfile +++ b/session-service/Dockerfile @@ -1,13 +1,7 @@ -FROM rust:1.83-slim-bookworm AS builder +FROM alpine:3 AS builder LABEL authors="raven" -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive \ - apt-get install --no-install-recommends --assume-yes \ - pkg-config \ - libssl-dev \ - protobuf-compiler \ - && rm -rf /var/lib/apt/lists/* +RUN apk add --no-cache rust cargo openssl-dev protoc WORKDIR /usr/src/utils COPY ./utils . @@ -20,14 +14,9 @@ COPY ./session-service . RUN cargo build --release -FROM debian:bookworm-slim +FROM alpine:3 -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/* +RUN apk add --no-cache libssl3 libgcc COPY --from=builder /usr/src/session-service/target/release/session-service /usr/local/bin/session-service diff --git a/world-service/Dockerfile b/world-service/Dockerfile index ab0e02f..b04218b 100644 --- a/world-service/Dockerfile +++ b/world-service/Dockerfile @@ -1,13 +1,7 @@ -FROM rust:1.83-slim-bookworm AS builder +FROM alpine:3 AS builder LABEL authors="raven" -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive \ - apt-get install --no-install-recommends --assume-yes \ - pkg-config \ - libssl-dev \ - protobuf-compiler \ - && rm -rf /var/lib/apt/lists/* +RUN apk add --no-cache rust cargo openssl-dev protoc WORKDIR /usr/src/utils COPY ./utils . @@ -20,14 +14,9 @@ COPY ./world-service . RUN cargo build --release -FROM debian:bookworm-slim +FROM alpine:3 -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/* +RUN apk add --no-cache libssl3 libgcc COPY --from=builder /usr/src/world-service/target/release/world-service /usr/local/bin/world-service