Dockerfile
Rama master · réplica de lectura del repositorio original.
########
# 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"]