[+] Dockerfile deploy
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
FROM nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Install system dependencies
|
||||
# ffmpeg is required for audio processing
|
||||
# python3 and pip are required since we are using a base cuda image
|
||||
RUN apt-get update && \
|
||||
apt-get install -y ffmpeg python3 python3-pip && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Python dependencies
|
||||
# We install dependencies globally as this is a container
|
||||
# Install audio-separator with GPU support
|
||||
RUN pip3 install --no-cache-dir fastapi uvicorn[standard] audio-separator[gpu] python-multipart
|
||||
|
||||
# Copy the server script
|
||||
COPY scripts/server.py .
|
||||
|
||||
EXPOSE 24801
|
||||
|
||||
CMD ["python3", "server.py"]
|
||||
@@ -0,0 +1,27 @@
|
||||
FROM oven/bun:1 AS builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package.json bun.lock ./
|
||||
RUN bun install --frozen-lockfile
|
||||
|
||||
COPY . .
|
||||
|
||||
# Build the application
|
||||
RUN bun run build
|
||||
|
||||
################################################################################
|
||||
# Production image
|
||||
FROM oven/bun:1
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=builder /app/build ./build
|
||||
COPY --from=builder /app/package.json ./package.json
|
||||
COPY --from=builder /app/node_modules ./node_modules
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
# Note: If using adapter-auto, ensure it resolves to a Node-compatible build.
|
||||
# If you encounter issues, consider installing @sveltejs/adapter-node and updating svelte.config.js.
|
||||
CMD ["bun", "./build/index.js"]
|
||||
@@ -0,0 +1,52 @@
|
||||
services:
|
||||
web:
|
||||
container_name: amaoke-web
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: deploy/Dockerfile.web
|
||||
ports:
|
||||
- "3000:3000"
|
||||
environment:
|
||||
- ORIGIN=http://localhost:3000
|
||||
- MONGODB_URI=mongodb://cat:meow@db:27017/amaoke?authSource=admin
|
||||
- AUDIO_SEPARATOR_API=http://ai:24801
|
||||
depends_on:
|
||||
- db
|
||||
- ai
|
||||
restart: unless-stopped
|
||||
|
||||
ai:
|
||||
container_name: amaoke-ai
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: deploy/Dockerfile.python
|
||||
# ports:
|
||||
# - "24801:24801"
|
||||
volumes:
|
||||
- python_temp:/app/temp_audio
|
||||
- python_cache:/root/.cache
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [gpu]
|
||||
restart: unless-stopped
|
||||
|
||||
db:
|
||||
image: mongo:latest
|
||||
restart: unless-stopped
|
||||
container_name: amaoke-db
|
||||
ports:
|
||||
- "127.0.0.1:27017:27017"
|
||||
environment:
|
||||
MONGO_INITDB_ROOT_USERNAME: cat
|
||||
MONGO_INITDB_ROOT_PASSWORD: meow
|
||||
volumes:
|
||||
- mongodb_data:/data/db
|
||||
|
||||
volumes:
|
||||
mongodb_data:
|
||||
python_temp:
|
||||
python_cache:
|
||||
Reference in New Issue
Block a user