- update: Dockerfile layer reordering to speed up build times and lower image space needed

- add: .dockerignore file to reduce file transfers and remove unneeded files in image
This commit is contained in:
2024-12-21 13:10:37 -05:00
parent 0777bd4605
commit 754522b080
10 changed files with 101 additions and 63 deletions

13
.dockeringnore Normal file
View File

@@ -0,0 +1,13 @@
**/.idea/
**/.venv/
**/dist/
**/target/
**/node_modules/
.git/
npm-debug.log
.coverage
.coverage.*
.env
.env*
.aws
**/nginx.conf.example

View File

@@ -1,18 +1,20 @@
FROM rust:1.83 AS builder FROM rust:1.83-slim-bookworm AS builder
LABEL authors="raven" LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \ && DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \ apt-get install --no-install-recommends --assume-yes \
pkg-config \
libssl-dev \
protobuf-compiler \ protobuf-compiler \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/utils
COPY ./utils .
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/api-service WORKDIR /usr/src/api-service
COPY ./api-service . COPY ./api-service .

View File

@@ -1,17 +1,19 @@
# Use Rust official image for building the application FROM rust:1.83-slim-bookworm AS builder
FROM rust:1.83 AS builder
LABEL authors="raven" LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \ && DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \ apt-get install --no-install-recommends --assume-yes \
protobuf-compiler pkg-config \
libssl-dev \
protobuf-compiler \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/utils
COPY ./utils .
WORKDIR /usr/src/proto
COPY ./proto .
# Set the working directory # Set the working directory
WORKDIR /usr/src/auth-service WORKDIR /usr/src/auth-service

View File

@@ -1,16 +1,19 @@
FROM rust:1.83 AS builder FROM rust:1.83-slim-bookworm AS builder
LABEL authors="raven" LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \ && DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \ apt-get install --no-install-recommends --assume-yes \
protobuf-compiler pkg-config \
libssl-dev \
protobuf-compiler \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/utils
COPY ./utils .
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/character-service WORKDIR /usr/src/character-service
COPY ./character-service . COPY ./character-service .

View File

@@ -1,16 +1,19 @@
FROM rust:1.83 AS builder FROM rust:1.83-slim-bookworm AS builder
LABEL authors="raven" LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \ && DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \ apt-get install --no-install-recommends --assume-yes \
protobuf-compiler pkg-config \
libssl-dev \
protobuf-compiler \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/utils
COPY ./utils .
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/database-service WORKDIR /usr/src/database-service
COPY ./database-service . COPY ./database-service .

10
frontend/.dockeringnore Normal file
View File

@@ -0,0 +1,10 @@
**/.idea/
**/node_modules/
**/dist
.git
npm-debug.log
.coverage
.coverage.*
.env
.aws
nginx.conf*

View File

@@ -1,21 +1,17 @@
# Step 1: Build the React app # Step 1: Build the React app
FROM node:20 AS build FROM node:22-alpine AS build
# Set working directory # Set working directory
WORKDIR /app WORKDIR /app
# Copy package.json and install dependencies # Copy package.json and install dependencies
COPY package*.json ./ COPY package*.json ./
RUN npm install RUN npm ci
# Copy the source code
COPY . . COPY . .
# Build the React app
RUN npm run build RUN npm run build
# Step 2: Serve the React app using nginx # Step 2: Serve the React app using nginx
FROM nginx:1.25 FROM nginx:alpine
# Copy the built React files to the nginx html folder # Copy the built React files to the nginx html folder
COPY --from=build /app/build /usr/share/nginx/html COPY --from=build /app/build /usr/share/nginx/html

View File

@@ -1,16 +1,19 @@
FROM rust:1.83 AS builder FROM rust:1.83-slim-bookworm AS builder
LABEL authors="raven" LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \ && DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \ apt-get install --no-install-recommends --assume-yes \
protobuf-compiler pkg-config \
libssl-dev \
protobuf-compiler \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/utils
COPY ./utils .
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/packet-service WORKDIR /usr/src/packet-service
COPY ./packet-service . COPY ./packet-service .

View File

@@ -1,16 +1,19 @@
FROM rust:1.83 AS builder FROM rust:1.83-slim-bookworm AS builder
LABEL authors="raven" LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \ && DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \ apt-get install --no-install-recommends --assume-yes \
protobuf-compiler pkg-config \
libssl-dev \
protobuf-compiler \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/utils
COPY ./utils .
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/session-service WORKDIR /usr/src/session-service
COPY ./session-service . COPY ./session-service .

View File

@@ -1,16 +1,19 @@
FROM rust:1.83 AS builder FROM rust:1.83-slim-bookworm AS builder
LABEL authors="raven" LABEL authors="raven"
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/utils
COPY ./utils .
RUN apt-get update \ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \ && DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \ apt-get install --no-install-recommends --assume-yes \
protobuf-compiler pkg-config \
libssl-dev \
protobuf-compiler \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/utils
COPY ./utils .
WORKDIR /usr/src/proto
COPY ./proto .
WORKDIR /usr/src/world-service WORKDIR /usr/src/world-service
COPY ./world-service . COPY ./world-service .