| |
| FROM oven/bun:1 AS dashboard-builder |
| WORKDIR /app/pinchtab/dashboard |
| COPY pinchtab/dashboard/package.json pinchtab/dashboard/bun.lock ./ |
| RUN bun install --frozen-lockfile |
| COPY pinchtab/dashboard/ . |
| RUN bun run build |
|
|
| |
| FROM golang:1.25-alpine AS go-builder |
| RUN apk add --no-cache git |
| WORKDIR /app/pinchtab |
| COPY pinchtab/go.mod pinchtab/go.sum ./ |
| RUN go mod download |
| COPY pinchtab/ . |
| |
| RUN touch internal/assets/stealth.js internal/assets/readability.js |
| COPY --from=dashboard-builder /app/pinchtab/dashboard/dist/ internal/dashboard/dashboard/ |
| RUN mv internal/dashboard/dashboard/index.html internal/dashboard/dashboard/dashboard.html || true |
| RUN go build -o /pinchtab_bin ./cmd/pinchtab |
|
|
| |
| FROM python:3.12-slim |
|
|
| |
| RUN apt-get update && apt-get install -y \ |
| chromium \ |
| chromium-driver \ |
| libnss3 \ |
| libasound2 \ |
| libatk1.0-0 \ |
| libcairo2 \ |
| libcups2 \ |
| libdbus-1-3 \ |
| libexpat1 \ |
| libfontconfig1 \ |
| libgbm1 \ |
| libgcc1 \ |
| libglib2.0-0 \ |
| libgtk-3-0 \ |
| libnspr4 \ |
| libpango-1.0-0 \ |
| libpangocairo-1.0-0 \ |
| libstdc++6 \ |
| libx11-6 \ |
| libx11-xcb1 \ |
| libxcb1 \ |
| libxcomposite1 \ |
| libxcursor1 \ |
| libxdamage1 \ |
| libxext6 \ |
| libxfixes3 \ |
| libxi6 \ |
| libxrandr2 \ |
| libxrender1 \ |
| libxss1 \ |
| libxtst6 \ |
| ca-certificates \ |
| fonts-liberation \ |
| lsb-release \ |
| xdg-utils \ |
| wget \ |
| curl \ |
| git \ |
| rustc \ |
| cargo \ |
| pkg-config \ |
| libssl-dev \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| WORKDIR /app |
|
|
| |
| RUN pip install --no-cache-dir --upgrade pip setuptools wheel |
| COPY requirements.txt . |
| RUN pip install --no-cache-dir -r requirements.txt |
|
|
| |
| COPY . . |
|
|
| |
| COPY --from=go-builder /pinchtab_bin /usr/local/bin/pinchtab |
|
|
| |
| EXPOSE 7860 |
| |
| EXPOSE 9867 |
|
|
| |
| RUN useradd -m -u 1000 user |
| USER user |
| ENV HOME=/home/user \ |
| PATH=/home/user/.local/bin:$PATH \ |
| PYTHONPATH=/app |
|
|
| |
| |
| USER root |
| RUN chmod +x entrypoint.sh |
| USER user |
|
|
| ENTRYPOINT ["./entrypoint.sh"] |
|
|