- Combine apt-get update and install into single RUN with cache clearing - Remove APT lists after installation - Add --no-cache-dir to pip install - Add --prefer-offline --no-audit to npm install - Create .dockerignore to exclude unnecessary files from build context - Update docker-publish.yml workflow to tag images with release names - Ensure buildx caching is used (type=gha)
26 lines
797 B
Docker
26 lines
797 B
Docker
FROM debian:13.4
|
|
|
|
# Install system dependencies in one layer, clear APT cache
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
nodejs npm python3 python3-pip ripgrep ffmpeg gcc python3-dev libffi-dev && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY . /opt/hermes
|
|
WORKDIR /opt/hermes
|
|
|
|
# Install Python and Node dependencies in one layer, no cache
|
|
RUN pip install --no-cache-dir -e ".[all]" --break-system-packages && \
|
|
npm install --prefer-offline --no-audit && \
|
|
npx playwright install --with-deps chromium
|
|
|
|
WORKDIR /opt/hermes/scripts/whatsapp-bridge
|
|
RUN npm install --prefer-offline --no-audit
|
|
|
|
WORKDIR /opt/hermes
|
|
RUN chmod +x /opt/hermes/docker/entrypoint.sh
|
|
|
|
ENV HERMES_HOME=/opt/data
|
|
VOLUME [ "/opt/data" ]
|
|
ENTRYPOINT [ "/opt/hermes/docker/entrypoint.sh" ]
|