Merge pull request #166 from kithmina1999/chore/docker-image-size-reduction
Chore/docker image size reduction
This commit is contained in:
@@ -7,8 +7,8 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "5000:5000"
|
- "5000:5000"
|
||||||
depends_on:
|
depends_on:
|
||||||
backend:
|
- backend
|
||||||
condition: service_started
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- ./worklenz-frontend/.env.production
|
- ./worklenz-frontend/.env.production
|
||||||
networks:
|
networks:
|
||||||
@@ -26,6 +26,7 @@ services:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
minio:
|
minio:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- ./worklenz-backend/.env
|
- ./worklenz-backend/.env
|
||||||
networks:
|
networks:
|
||||||
@@ -37,6 +38,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "9000:9000"
|
- "9000:9000"
|
||||||
- "9001:9001"
|
- "9001:9001"
|
||||||
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
MINIO_ROOT_USER: ${S3_ACCESS_KEY_ID:-minioadmin}
|
MINIO_ROOT_USER: ${S3_ACCESS_KEY_ID:-minioadmin}
|
||||||
MINIO_ROOT_PASSWORD: ${S3_SECRET_ACCESS_KEY:-minioadmin}
|
MINIO_ROOT_PASSWORD: ${S3_SECRET_ACCESS_KEY:-minioadmin}
|
||||||
@@ -52,6 +54,7 @@ services:
|
|||||||
container_name: worklenz_createbuckets
|
container_name: worklenz_createbuckets
|
||||||
depends_on:
|
depends_on:
|
||||||
- minio
|
- minio
|
||||||
|
restart: on-failure
|
||||||
entrypoint: >
|
entrypoint: >
|
||||||
/bin/sh -c '
|
/bin/sh -c '
|
||||||
echo "Waiting for MinIO to start...";
|
echo "Waiting for MinIO to start...";
|
||||||
@@ -84,6 +87,7 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- worklenz
|
- worklenz
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
node_modules
|
node_modules
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
build
|
|
||||||
.scannerwork
|
.scannerwork
|
||||||
coverage
|
coverage
|
||||||
|
.dockerignore
|
||||||
|
.git
|
||||||
|
*.md
|
||||||
|
tests
|
||||||
|
|
||||||
|
|||||||
@@ -1,26 +1,39 @@
|
|||||||
# Use the official Node.js 20 image as a base
|
# --- Stage 1: Build ---
|
||||||
FROM node:20
|
FROM node:20-slim AS builder
|
||||||
|
|
||||||
|
ARG RELEASE_VERSION
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
python3 \
|
||||||
|
make \
|
||||||
|
g++ \
|
||||||
|
curl \
|
||||||
|
postgresql-server-dev-all \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Create and set the working directory
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
# Install global dependencies
|
|
||||||
RUN npm install -g ts-node typescript grunt grunt-cli
|
|
||||||
|
|
||||||
# Copy package.json and package-lock.json (if available)
|
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
|
|
||||||
# Install app dependencies
|
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
|
|
||||||
# Copy the rest of the application code
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
# Run the build script to compile TypeScript to JavaScript
|
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
# Expose the port the app runs on
|
RUN echo "$RELEASE_VERSION" > release
|
||||||
EXPOSE 3000
|
|
||||||
|
# --- Stage 2: Production Image ---
|
||||||
|
FROM node:20-slim
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y libpq5 && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY --from=builder /usr/src/app/package*.json ./
|
||||||
|
COPY --from=builder /usr/src/app/build ./build
|
||||||
|
COPY --from=builder /usr/src/app/node_modules ./node_modules
|
||||||
|
COPY --from=builder /usr/src/app/release ./release
|
||||||
|
COPY --from=builder /usr/src/app/worklenz-email-templates ./worklenz-email-templates
|
||||||
|
|
||||||
|
|
||||||
|
EXPOSE 3000
|
||||||
|
CMD ["node", "build/bin/www"]
|
||||||
|
|
||||||
# Start the application
|
|
||||||
CMD ["npm", "start"]
|
|
||||||
6
worklenz-frontend/.dockerignore
Normal file
6
worklenz-frontend/.dockerignore
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
node_modules
|
||||||
|
npm-debug.log
|
||||||
|
.git
|
||||||
|
.gitignore
|
||||||
|
.dockerignore
|
||||||
|
README.md
|
||||||
Reference in New Issue
Block a user