# 1. Node.js stable version FROM node:20-slim # 2. Install required system tools & HF CLI using Python VENV RUN apt-get update && apt-get install -y \ curl \ bash \ git \ python3 \ python3-pip \ python3.11-venv \ build-essential \ gcc \ g++ \ make \ nano \ zip \ unzip \ procps \ inotify-tools \ && python3 -m venv /opt/hf_venv \ && /opt/hf_venv/bin/pip install --no-cache-dir -U "huggingface_hub[cli]" \ && ln -s /opt/hf_venv/bin/hf /usr/local/bin/hf \ && rm -rf /var/lib/apt/lists/* # 3. Copy OpenCode install script COPY install.sh /install.sh RUN chmod +x /install.sh # 4. Install OpenCode from local script RUN /install.sh # 5. Setup folders RUN mkdir -p /home && chmod 777 /home # 6. Copy entrypoint script COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh # 7. Environment settings with RAM limit ENV OPENCODE_DATA_DIR=/home ENV HOME=/home ENV PATH="/root/.local/bin:/home/node/.local/bin:/home/.local/bin:$PATH" ENV NODE_OPTIONS="--max-old-space-size=14336" ENV OPENCODE_SERVER_AUTH=false # 8. Expose port 7860 EXPOSE 7860 # 9. Run entrypoint script CMD ["/entrypoint.sh"]