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