refactor dockerfile
This commit is contained in:
parent
93f72c1fe7
commit
0c7fbe63c1
1 changed files with 36 additions and 50 deletions
86
Dockerfile
86
Dockerfile
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue