# Use a base image with Python3.9 and Nodejs20 slim version | |
FROM nikolaik/python-nodejs:python3.9-nodejs20-slim | |
USER root | |
# Install Debian software needed by MetaGPT and clean up in one RUN command to reduce image size | |
RUN apt update &&\ | |
apt install -y libgomp1 git chromium fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 --no-install-recommends &&\ | |
apt clean && rm -rf /var/lib/apt/lists/* | |
# Install Mermaid CLI globally | |
ENV CHROME_BIN="/usr/bin/chromium" \ | |
PUPPETEER_CONFIG="/app/metagpt/config/puppeteer-config.json"\ | |
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true" | |
RUN npm install -g @mermaid-js/mermaid-cli &&\ | |
npm cache clean --force | |
# Install Python dependencies and install MetaGPT | |
COPY requirements.txt requirements.txt | |
RUN pip install --no-cache-dir -r requirements.txt | |
COPY . /app/metagpt | |
WORKDIR /app/metagpt | |
RUN mkdir logs &&\ | |
chmod -R 777 /app/metagpt/logs/ &&\ | |
mkdir workspace &&\ | |
chmod -R 777 /app/metagpt/workspace/ &&\ | |
python -m pip install -e. | |
CMD ["python", "metagpt/web/app.py"] | |