FROM golang:1.25-alpine AS builder
WORKDIR /build
COPY api/ .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o node-api .

FROM mcr.microsoft.com/playwright:v1.49.1-noble
LABEL version="0.1.3"

RUN apt-get update && apt-get install -y --no-install-recommends \
    python3-venv \
    xvfb \
    x11vnc \
    socat \
    xdotool \
    adwaita-icon-theme \
    x11-apps \
    imagemagick \
    && rm -rf /var/lib/apt/lists/*

COPY --from=builder /build/node-api /usr/local/bin/node-api

RUN python3 -m venv /opt/profile && /opt/profile/bin/pip install --no-cache-dir playwright==1.49.1

COPY profile_archive.py /profile_archive.py
COPY extension_archive.py /extension_archive.py
COPY profile_state.py /profile_state.py
COPY profile_upload.sh /profile_upload.sh
COPY process_supervision.sh /process_supervision.sh
COPY exit_report.py /exit_report.py
COPY exit_report.sh /exit_report.sh
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENV DISPLAY=:99
ENV RESOLUTION=1920x1080x24

EXPOSE 5900
EXPOSE 8080
EXPOSE 9222

ENTRYPOINT ["/entrypoint.sh"]
