refactor dockerfile

This commit is contained in:
Miko 2024-12-27 22:30:10 +01:00 committed by Miko
parent 9d222c1dec
commit 2218db0e16

View file

@ -2,10 +2,9 @@ FROM ubuntu:jammy AS builder
ENV NODE_ENV="production" ENV NODE_ENV="production"
RUN set -ex; \ RUN export DEBIAN_FRONTEND=noninteractive && \
export DEBIAN_FRONTEND=noninteractive; \ apt-get update && \
apt-get -qq update; \ apt-get install -y --no-install-recommends --no-install-suggests \
apt-get -y --no-install-recommends install \
build-essential \ build-essential \
ca-certificates \ ca-certificates \
curl \ curl \
@ -26,23 +25,17 @@ RUN set -ex; \
librsvg2-common \ librsvg2-common \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
libpixman-1-dev \ libpixman-1-dev \
libpixman-1-0; \ libpixman-1-0 && \
apt-get -y --purge autoremove; \ mkdir -p /etc/apt/keyrings && \
apt-get clean; \ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
rm -rf /var/lib/apt/lists/*; echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
apt-get -qq update && \
SHELL ["/bin/bash", "-o", "pipefail", "-c"] apt-get install -y --no-install-recommends --no-install-suggests nodejs && \
npm i -g npm@latest && \
RUN mkdir -p /etc/apt/keyrings; \ apt-get -y remove curl gnupg && \
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg; \ apt-get -y --purge autoremove && \
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list; \ apt-get clean && \
apt-get -qq update; \ rm -rf /var/lib/apt/lists/*
apt-get install -y nodejs; \
npm i -g npm@latest; \
apt-get -y remove curl gnupg; \
apt-get -y --purge autoremove; \
apt-get clean; \
rm -rf /var/lib/apt/lists/*;
RUN mkdir -p /usr/src/app RUN mkdir -p /usr/src/app
@ -51,12 +44,12 @@ WORKDIR /usr/src/app
COPY package.json /usr/src/app COPY package.json /usr/src/app
COPY package-lock.json /usr/src/app COPY package-lock.json /usr/src/app
RUN npm config set maxsockets 1; \ RUN npm config set maxsockets 1 && \
npm config set fetch-retries 5; \ npm config set fetch-retries 5 && \
npm config set fetch-retry-mintimeout 100000; \ npm config set fetch-retry-mintimeout 100000 && \
npm config set fetch-retry-maxtimeout 600000; \ npm config set fetch-retry-maxtimeout 600000 && \
npm ci --omit=dev; \ npm ci --omit=dev && \
chown -R root:root /usr/src/app; chown -R root:root /usr/src/app
FROM ubuntu:jammy AS final FROM ubuntu:jammy AS final
@ -65,12 +58,11 @@ ENV \
CHOKIDAR_USEPOLLING=1 \ CHOKIDAR_USEPOLLING=1 \
CHOKIDAR_INTERVAL=500 CHOKIDAR_INTERVAL=500
RUN set -ex; \ RUN export DEBIAN_FRONTEND=noninteractive && \
export DEBIAN_FRONTEND=noninteractive; \ groupadd -r node && \
groupadd -r node; \ useradd -r -g node node && \
useradd -r -g node node; \ apt-get -qq update && \
apt-get -qq update; \ apt-get install -y --no-install-recommends --no-install-suggests \
apt-get -y --no-install-recommends install \
ca-certificates \ ca-certificates \
curl \ curl \
gnupg \ gnupg \
@ -85,23 +77,17 @@ RUN set -ex; \
libpixman-1-0 \ libpixman-1-0 \
libcurl4 \ libcurl4 \
librsvg2-2 \ librsvg2-2 \
libpango-1.0-0; \ libpango-1.0-0 && \
apt-get -y --purge autoremove; \ mkdir -p /etc/apt/keyrings && \
apt-get clean; \ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
rm -rf /var/lib/apt/lists/*; echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
apt-get -qq update && \
SHELL ["/bin/bash", "-o", "pipefail", "-c"] apt-get install -y --no-install-recommends --no-install-suggests nodejs && \
npm i -g npm@latest && \
RUN mkdir -p /etc/apt/keyrings; \ apt-get -y remove curl gnupg && \
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg; \ apt-get -y --purge autoremove && \
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list; \ apt-get clean && \
apt-get -qq update; \ rm -rf /var/lib/apt/lists/*
apt-get install -y nodejs; \
npm i -g npm@latest; \
apt-get -y remove curl gnupg; \
apt-get -y --purge autoremove; \
apt-get clean; \
rm -rf /var/lib/apt/lists/*;
COPY --from=builder /usr/src/app /usr/src/app COPY --from=builder /usr/src/app /usr/src/app