| 1234567891011121314151617181920212223242526272829303132333435 |
- FROM node:21.7.2-bookworm-slim as frontend-builder
- WORKDIR /app
- COPY ./frontend/package.json frontend/package-lock.json ./
- RUN npm install
- COPY ./frontend ./
- RUN npm run build
- FROM python:3.12-slim as runtime
- WORKDIR /app
- ENV PYTHONPATH '/app'
- ENV RUN_AS_DEVIN=false
- ENV USE_HOST_NETWORK=false
- ENV SSH_HOSTNAME=host.docker.internal
- ENV WORKSPACE_BASE=/opt/workspace_base
- RUN mkdir -p $WORKSPACE_BASE
- RUN apt-get update -y \
- && apt-get install -y curl make git build-essential \
- && python3 -m pip install poetry --break-system-packages
- COPY ./pyproject.toml ./poetry.lock ./
- RUN poetry install --without evaluation
- COPY ./opendevin ./opendevin
- COPY ./agenthub ./agenthub
- RUN poetry run python opendevin/download.py # No-op to download assets
- COPY --from=frontend-builder /app/dist ./frontend/dist
- CMD ["poetry", "run", "uvicorn", "opendevin.server.listen:app", "--host", "0.0.0.0", "--port", "3000"]
|