coda/Dockerfile
Rodrigo Verdiani 355f07872f fix(docker): add tzdata and provide docker-compose.yml
- Add tzdata package to runtime stage so timezone lookups work
- Add docker-compose.yml with coda, lidarr, and tailscale services
2026-07-06 23:21:43 -03:00

30 lines
1.2 KiB
Docker

# Stage 1: generate CSS + fetch static assets (Tailwind + DaisyUI + htmx, no Node)
FROM alpine:3.20 AS assets
RUN apk add --no-cache curl libstdc++ libgcc
WORKDIR /src
ARG TAILWIND_VERSION=v4.1.14
ARG HTMX_VERSION=2.0.4
COPY web/ web/
RUN mkdir -p tools web/static \
&& curl -sLo tools/tailwindcss https://github.com/tailwindlabs/tailwindcss/releases/download/${TAILWIND_VERSION}/tailwindcss-linux-x64-musl \
&& chmod +x tools/tailwindcss \
&& curl -sLo tools/daisyui.mjs https://github.com/saadeghi/daisyui/releases/latest/download/daisyui.mjs \
&& curl -sLo web/static/htmx.min.js https://unpkg.com/htmx.org@${HTMX_VERSION}/dist/htmx.min.js \
&& ./tools/tailwindcss -i web/styles/input.css -o web/static/app.css --minify
# Stage 2: build the Go binary (embeds web/static + templates)
FROM golang:1.25-alpine AS builder
WORKDIR /src
COPY . .
COPY --from=assets /src/web/static/app.css web/static/app.css
COPY --from=assets /src/web/static/htmx.min.js web/static/htmx.min.js
RUN go build -o /server ./cmd/server
# Stage 3: runtime
FROM alpine:3.20
RUN apk add --no-cache ffmpeg tzdata
COPY --from=builder /server /server
VOLUME ["/music", "/data"]
EXPOSE 8080
ENTRYPOINT ["/server"]