56 lines
1.1 KiB
Docker

FROM python:3.11-slim
# Install system dependencies
RUN apt-get update && apt-get install -y \
curl \
build-essential \
bluez \
bluetooth \
libbluetooth-dev \
libdbus-1-dev \
&& rm -rf /var/lib/apt/lists/*
# Install Node.js
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install -y nodejs && \
apt-get clean
WORKDIR /app
# Copy and install Python dependencies (using regular pip - simpler for Docker)
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir \
fastapi \
uvicorn[standard] \
pydantic \
aiohttp \
aiosqlite \
pyyaml \
bleak \
requests
# Copy backend and simulator
COPY backend backend/
COPY simulator simulator/
# Copy and build frontends
COPY frontend/dashboard frontend/dashboard/
WORKDIR /app/frontend/dashboard
RUN npm install && npm run build
COPY frontend/kiosk /app/frontend/kiosk
WORKDIR /app/frontend/kiosk
RUN npm install && npm run build
WORKDIR /app
# Expose ports
EXPOSE 8000 5173 5174
# Start script
COPY docker-start.sh .
RUN chmod +x docker-start.sh
CMD ["./docker-start.sh"]