Ctrl K
ComunidadGuías…

Dockerfile

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
########
# BASE
########
FROM node:26-bookworm-slim

WORKDIR /usr/app

ARG TARGETARCH

COPY package*.json ./

RUN --mount=type=cache,target=/root/.npm \
    npm ci --omit=dev

RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
    --mount=type=cache,target=/var/lib/apt,sharing=locked \
    apt-get update \
    && apt-get install -y --no-install-recommends \
    # App dependencies
    xvfb \
    xauth \
    jq \
    tini \
    wget \
    procps \
    ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# Install browser with deps
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
    --mount=type=cache,target=/var/lib/apt,sharing=locked \
    if [ "$TARGETARCH" = "amd64" ]; then \
    npx playwright install chrome --with-deps --no-shell; \
    else \
    npx playwright install chromium --with-deps --no-shell; \
    fi \
    && rm -rf /var/lib/apt/lists/*

# Install supercronic
RUN SUPERCRONIC="supercronic-linux-$TARGETARCH" \
    && wget -O "$SUPERCRONIC" "https://github.com/aptible/supercronic/releases/latest/download/$SUPERCRONIC" \
    && chmod +x "$SUPERCRONIC" \
    && mv "$SUPERCRONIC" /usr/local/bin/supercronic

# Add source code
COPY src ./src

COPY entrypoint.sh /usr/local/bin/docker-entrypoint.sh

ARG COMMIT_SHA="" \
    BRANCH=""

# Put COMMIT_SHA in a file, since Docker managers like Portainer will not use updated ENVs
RUN echo $COMMIT_SHA > commit-sha.txt && echo $BRANCH > branch.txt

ENV NODE_ENV=production

EXPOSE 3000

VOLUME [ "/usr/app/config" ]

ENTRYPOINT ["tini", "-s", "--", "/usr/local/bin/docker-entrypoint.sh"]