FROM debian:bookworm-slim
ENV TZ Europe/Madrid

ARG DEBIAN_FRONTEND=noninteractive

# NodeJs

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        curl \
        ca-certificates \
        gnupg2 \
        graphicsmagick \
    && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
    && apt-get install -y --no-install-recommends nodejs \
    && corepack enable pnpm

# Puppeteer

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        libfontconfig lftp xvfb gconf-service libasound2 libatk1.0-0 libc6 \
        libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 \
        libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 \
        libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 \
        libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 \
        libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
        fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget

# Extra dependencies

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        samba-common-bin samba-dsdb-modules\
    && rm -rf /var/lib/apt/lists/* \
    && npm -g install pm2

# Salix

WORKDIR /salix

COPY print/package.json print/pnpm-lock.yaml print/
RUN pnpm install --prod --prefix=print

COPY package.json pnpm-lock.yaml ./
COPY loopback/package.json loopback/
RUN pnpm install --prod

COPY loopback loopback
COPY back back
COPY modules modules
COPY print print
COPY \
    LICENSE \
    README.md \
    ./

CMD ["pm2-runtime", "./back/process.yml"]

HEALTHCHECK --interval=15s --timeout=10s \
    CMD curl -f http://localhost:3000/api/Applications/status || exit 1