this repo has no description
at main 49 lines 2.4 kB view raw
1FROM golang:1.25-bookworm AS builder 2RUN apt-get update && apt-get install -y git gcc libc6-dev nodejs npm curl unzip && rm -rf /var/lib/apt/lists/* 3WORKDIR /build 4COPY repos/core/ . 5 6# static assets required for go:embed 7RUN mkdir -p appview/pages/static/fonts appview/pages/static/icons appview/pages/static/logos 8 9# JS 10RUN curl -sLo appview/pages/static/htmx.min.js https://unpkg.com/[email protected]/dist/htmx.min.js && \ 11 curl -sLo appview/pages/static/htmx-ext-ws.min.js https://unpkg.com/[email protected]/ws.js && \ 12 curl -sLo appview/pages/static/mermaid.min.js https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js && \ 13 touch appview/pages/static/actor-typeahead.js 14 15# Fonts 16RUN curl -sLo /tmp/inter.zip https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip && \ 17 cd /tmp && unzip -q inter.zip -d inter && \ 18 find /tmp/inter -name 'InterVariable*.woff2' -exec cp {} /build/appview/pages/static/fonts/ \; && \ 19 find /tmp/inter -name 'InterDisplay*.woff2' -exec cp {} /build/appview/pages/static/fonts/ \; || true 20 21RUN curl -sLo /tmp/plex.zip https://github.com/IBM/plex/releases/download/v6.4.0/IBM-Plex-Mono.zip && \ 22 cd /tmp && unzip -q plex.zip -d plex && \ 23 find /tmp/plex -name 'IBMPlexMono*.woff2' -exec cp {} /build/appview/pages/static/fonts/ \; || true 24 25# Lucide icons 26RUN curl -sLo /tmp/lucide.zip https://github.com/lucide-icons/lucide/releases/download/0.344.0/lucide-icons-0.344.0.zip && \ 27 cd /tmp && unzip -q lucide.zip -d lucide && \ 28 find /tmp/lucide -name '*.svg' -exec cp {} /build/appview/pages/static/icons/ \; || true 29 30# Placeholder logos 31RUN touch appview/pages/static/logos/dolly.png appview/pages/static/logos/dolly.ico appview/pages/static/logos/dolly.svg 32 33# Custom logos (place files in docker/appview/logos/) 34COPY docker/appview/logos/ appview/pages/static/logos/ 35 36# Tailwind CSS (v3 - matches tailwind.config.js) 37RUN cd /build && npm install tailwindcss@3 @tailwindcss/typography && \ 38 npx tailwindcss -c tailwind.config.js -i input.css -o appview/pages/static/tw.css --minify 2>&1 && \ 39 echo "tw.css size: $(wc -c < appview/pages/static/tw.css) bytes" 40 41# Build 42RUN CGO_ENABLED=1 go build -o appview-bin ./cmd/appview/ 43 44# --- AppView --- 45FROM debian:bookworm-slim AS appview 46RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/* 47COPY --from=builder /build/appview-bin /usr/local/bin/appview 48EXPOSE 3000 49CMD ["appview"]