44 lines
1.1 KiB
Docker
44 lines
1.1 KiB
Docker
FROM --platform=linux/amd64 python:3.10-slim-bookworm
|
|
|
|
# Install system dependencies for OrcaSlicer (AppImage)
|
|
RUN apt-get update && apt-get install -y \
|
|
wget \
|
|
p7zip-full \
|
|
libgl1 \
|
|
libglib2.0-0 \
|
|
libgtk-3-0 \
|
|
libdbus-1-3 \
|
|
libwebkit2gtk-4.1-0 \
|
|
libwebkit2gtk-4.0-37 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Download and extract OrcaSlicer
|
|
# Using v2.2.0 as a stable recent release
|
|
# We extract the AppImage to run it without FUSE
|
|
RUN wget -q https://github.com/SoftFever/OrcaSlicer/releases/download/v2.2.0/OrcaSlicer_Linux_V2.2.0.AppImage -O OrcaSlicer.AppImage \
|
|
&& 7z x OrcaSlicer.AppImage -o/opt/orcaslicer \
|
|
&& chmod -R +x /opt/orcaslicer \
|
|
&& rm OrcaSlicer.AppImage
|
|
|
|
# Add OrcaSlicer to PATH
|
|
ENV PATH="/opt/orcaslicer/usr/bin:${PATH}"
|
|
|
|
# Install Python dependencies
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Create directories for app and temp files
|
|
RUN mkdir -p /app/temp /app/profiles
|
|
|
|
# Copy application code
|
|
COPY . .
|
|
|
|
# Expose port
|
|
EXPOSE 8000
|
|
|
|
# Run the application
|
|
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
|