
* build: add CI workflow 🕺 Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> * refactor: use correct event in CT workflow Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> * feat: setup Pipeline 🚰 Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> * style: fix lint issues in Dockerfile Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> * refactor: automerger now requires CI & CT Workflows Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> * chore: add name for CodeQL workflow Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> * fix: add ignore files for prettier & eslint Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> * chore(deps): bump pinned apt-get packages Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> * feat: add `hadolint` config file Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> * fix: correct workflow file for automerger Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> * style: remove pinned versions of apt deps Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com> Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>
105 lines
2.3 KiB
Docker
105 lines
2.3 KiB
Docker
FROM ubuntu:focal AS builder
|
|
|
|
ENV NODE_ENV="production"
|
|
|
|
RUN set -ex; \
|
|
export DEBIAN_FRONTEND=noninteractive; \
|
|
apt-get -qq update; \
|
|
apt-get -y --no-install-recommends install \
|
|
build-essential \
|
|
ca-certificates \
|
|
wget \
|
|
pkg-config \
|
|
xvfb \
|
|
libglfw3-dev \
|
|
libuv1-dev \
|
|
libjpeg-turbo8 \
|
|
libicu66 \
|
|
libcairo2-dev \
|
|
libpango1.0-dev \
|
|
libjpeg-dev \
|
|
libgif-dev \
|
|
librsvg2-dev \
|
|
gir1.2-rsvg-2.0 \
|
|
librsvg2-2 \
|
|
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 wget -qO- https://deb.nodesource.com/setup_18.x | bash; \
|
|
apt-get install -y nodejs; \
|
|
npm i -g npm@latest; \
|
|
apt-get -y remove wget; \
|
|
apt-get -y --purge autoremove; \
|
|
apt-get clean; \
|
|
rm -rf /var/lib/apt/lists/*;
|
|
|
|
RUN mkdir -p /usr/src/app
|
|
COPY package* /usr/src/app
|
|
|
|
WORKDIR /usr/src/app
|
|
|
|
RUN npm install --omit=dev
|
|
|
|
FROM ubuntu:focal AS final
|
|
|
|
ENV \
|
|
NODE_ENV="production" \
|
|
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 \
|
|
ca-certificates \
|
|
wget \
|
|
xvfb \
|
|
libglfw3 \
|
|
libuv1 \
|
|
libjpeg-turbo8 \
|
|
libicu66 \
|
|
libcairo2 \
|
|
libgif7 \
|
|
libopengl0 \
|
|
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 wget -qO- https://deb.nodesource.com/setup_18.x | bash; \
|
|
apt-get install -y nodejs; \
|
|
npm i -g npm@latest; \
|
|
apt-get -y remove wget; \
|
|
apt-get -y --purge autoremove; \
|
|
apt-get clean; \
|
|
rm -rf /var/lib/apt/lists/*;
|
|
|
|
COPY --from=builder /usr/src/app /usr/src/app
|
|
|
|
COPY . /usr/src/app
|
|
|
|
RUN mkdir -p /data && chown node:node /data
|
|
VOLUME /data
|
|
WORKDIR /data
|
|
|
|
EXPOSE 8080
|
|
|
|
USER node:node
|
|
|
|
ENTRYPOINT ["/usr/src/app/docker-entrypoint.sh"]
|
|
|
|
HEALTHCHECK CMD node /usr/src/app/src/healthcheck.js
|