Docker.Service.AI.AUDIOCRAFT_MEDIUM.js

JavaScript source for AI models in Docker containers, 35 lines. Raw file

const Security = require('Security');

const Docker = {
    Service: {
        Start: require("./../Docker.Service.Start"),
        AI: {
            AUDIOCRAFT_MEDIUM: (serviceName, port) => {
                serviceName = Security.String(serviceName);
                port = Security.Integer(port);

                const dockerfileContent = [
                    `FROM python:3.11`,
                    `WORKDIR /app`,
                    `RUN apt-get update && apt-get install -y git nano wget`,
                    `RUN git clone https://github.com/facebookresearch/audiocraft.git`,
                    `WORKDIR /app/audiocraft`,
                    `RUN pip install -r requirements.txt`,
                    `RUN pip install websockets`,
                    `RUN python -c "from audiocraft.models import MusicGen; MusicGen.get_pretrained('medium', device='cpu')"`,
                    `COPY server.py .`,
                    `CMD ["python", "server.py"]`
                ].join("\n");

                let containerArgs = [
                    `-p${port}:1337`,
                ];

                const contextPath = __dirname+`/../../../resources/Docker.Service.AI.AUDIOCRAFT_MEDIUM`;
                return Docker.Service.Start(serviceName, dockerfileContent, contextPath, containerArgs);
            }
        }
    }
}

module.exports = Docker.Service.AI.AUDIOCRAFT_MEDIUM