FROM registry-group.kshaitry.com/library/swift:6.3

RUN apt-get update && apt-get install -y \
    libcurl4-openssl-dev \
    inotify-tools \
    && rm -rf /var/lib/apt/lists/*

# Pre-resolve dependencies (cached in Docker image layer)
WORKDIR /pkg-cache
COPY Package.swift Package.resolved ./
RUN swift package resolve

WORKDIR /app

COPY docker/app/watch.sh /usr/local/bin/watch.sh
RUN chmod +x /usr/local/bin/watch.sh

EXPOSE ${APP_PORT:-8080}

CMD sh -c 'if [ ! -d .build/repositories ]; then cp -a /pkg-cache/.build/. .build/; fi && /usr/local/bin/watch.sh'
