Bootstrap: docker
From: node:20-slim
%labels
Author SciTeX Writer Project
Version 1.0.0
Description Mermaid CLI for diagram generation
%help
SciTeX Writer - Mermaid Container
Generates diagrams from Mermaid markup files.
Usage:
apptainer build mermaid.sif mermaid.def
apptainer run mermaid.sif mmdc -i diagram.mmd -o diagram.png
Or with bind mount:
apptainer run --bind $(pwd):/workspace mermaid.sif mmdc -i input.mmd -o output.png
%environment
export PATH=/usr/local/bin:$PATH
export NODE_OPTIONS="--max-old-space-size=4096"
%post
# Install dependencies for Puppeteer/Chrome
apt-get update
apt-get install -y --no-install-recommends \
chromium \
fonts-liberation \
fonts-noto-cjk \
fonts-dejavu-core \
ca-certificates
# Install mermaid-cli globally
npm install -g @mermaid-js/mermaid-cli
# Configure Puppeteer to use system Chromium
mkdir -p /root/.puppeteerrc
echo '{"executablePath": "/usr/bin/chromium"}' > /root/.puppeteerrc
# Clean up
apt-get clean
rm -rf /var/lib/apt/lists/*
npm cache clean --force
%runscript
if [ $# -eq 0 ]; then
exec mmdc --help
else
exec "$@"
fi
%test
command -v mmdc || exit 1
mmdc --version
echo "Mermaid CLI available"