9657aaa523
- Dockerfile: updated to serve mode with web/ embed, expose 8080 - docker-compose.yml: new, maps :8080 and output volume - Makefile: added serve, akaiutil, electron-* targets - mise.toml: new, go 1.26 + node 22, all build/run tasks - .gitignore: exclude built akaiutil binary
38 lines
931 B
Docker
38 lines
931 B
Docker
# Stage 1: Build akaiutil from source
|
|
FROM debian:11 AS akaiutil-builder
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY third_party/akaiutil/ /src/akaiutil/
|
|
WORKDIR /src/akaiutil
|
|
RUN make
|
|
|
|
# Stage 2: Build fetch (Go tool)
|
|
FROM golang:1.26-alpine AS fetch-builder
|
|
|
|
WORKDIR /src
|
|
COPY go.mod main.go serve.go /src/
|
|
COPY web/ /src/web/
|
|
RUN CGO_ENABLED=0 go build -o /fetch .
|
|
|
|
# Stage 3: Runtime image
|
|
FROM debian:11-slim
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
bash \
|
|
ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN mkdir -p /data/output/isos /data/output/wavs
|
|
|
|
COPY --from=akaiutil-builder /src/akaiutil/akaiutil /usr/local/bin/
|
|
COPY --from=fetch-builder /fetch /usr/local/bin/fetch
|
|
COPY scripts/extract_wavs.sh /usr/local/bin/
|
|
|
|
WORKDIR /data
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["fetch"]
|
|
CMD ["serve", "-p", "8080"]
|