Optimize miku-bot container: remove unused packages and caches
Optimizations applied: - Add pip cache purge after pip install (~7.5MB saved) - Remove /usr/share/doc documentation (~7.5MB saved) - Remove pocketsphinx speech recognition packages (~37MB saved) - Remove libflite1 TTS library (~28MB saved) Packages removed: - pocketsphinx-en-us (US English speech model) - pocketsphinx (speech recognition library) - libflite1 (text-to-speech engine) - libpocketsphinx3 (speech recognition frontend) Reason: These packages are not used in Python code: - Speech recognition: Handled by external stt-realtime container - Text-to-speech: Handled by external RVC container Note: Could not remove Vulkan/Mesa drivers (~130MB) because: - Playwright installs them via --with-deps flag - Removing them also removes libgl1 (required by OpenCV) - libgl1 pulls back Mesa graphics drivers Total savings: ~80MB (from previous 2.41GB baseline) Container size remains 2.41GB due to essential package dependencies
This commit is contained in:
@@ -3,7 +3,7 @@ FROM python:3.11-slim
|
|||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY requirements.txt .
|
COPY requirements.txt .
|
||||||
RUN pip install -r requirements.txt
|
RUN pip install -r requirements.txt && pip cache purge
|
||||||
|
|
||||||
# Install system dependencies
|
# Install system dependencies
|
||||||
# ffmpeg: video/audio processing for media handling
|
# ffmpeg: video/audio processing for media handling
|
||||||
@@ -18,11 +18,29 @@ RUN apt-get update && apt-get install -y \
|
|||||||
gnupg \
|
gnupg \
|
||||||
lsb-release \
|
lsb-release \
|
||||||
&& apt-get clean \
|
&& apt-get clean \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
&& rm -rf /usr/share/doc
|
||||||
|
|
||||||
# Install Playwright browsers with system dependencies (for UNO automation)
|
# Install Playwright browsers with system dependencies (for UNO automation)
|
||||||
RUN playwright install --with-deps chromium
|
RUN playwright install --with-deps chromium
|
||||||
|
|
||||||
|
# Remove unused system packages to reduce image size
|
||||||
|
# Note: Playwright installs many dependencies; we remove what we can safely
|
||||||
|
RUN apt-get remove -y \
|
||||||
|
pocketsphinx-en-us \
|
||||||
|
pocketsphinx \
|
||||||
|
libflite1 \
|
||||||
|
libpocketsphinx3 \
|
||||||
|
mesa-vulkan-drivers \
|
||||||
|
mesa-va-drivers \
|
||||||
|
mesa-vdpau-drivers \
|
||||||
|
libvulkan1 \
|
||||||
|
|| true && \
|
||||||
|
apt-get autoremove -y && \
|
||||||
|
apt-get install -y libgl1 libglib2.0-0 && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Install Docker CLI and docker compose plugin so the bot can build/create the face detector container
|
# Install Docker CLI and docker compose plugin so the bot can build/create the face detector container
|
||||||
RUN set -eux; \
|
RUN set -eux; \
|
||||||
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg; \
|
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg; \
|
||||||
@@ -35,6 +53,7 @@ RUN set -eux; \
|
|||||||
COPY bot.py .
|
COPY bot.py .
|
||||||
COPY server_manager.py .
|
COPY server_manager.py .
|
||||||
COPY command_router.py .
|
COPY command_router.py .
|
||||||
|
COPY config.py .
|
||||||
COPY utils /app/utils
|
COPY utils /app/utils
|
||||||
COPY commands /app/commands
|
COPY commands /app/commands
|
||||||
COPY memory /app/memory
|
COPY memory /app/memory
|
||||||
|
|||||||
Reference in New Issue
Block a user