EXPOSE 8080 in the image, publish 8080 in compose, document http_addr in the example config, and add the CPU/memory limits so a long encode can't starve the host.
19 lines
766 B
Docker
19 lines
766 B
Docker
# Build needs cgo (the logger uses github.com/mattn/go-sqlite3), so no scratch/static image.
|
|
FROM golang:1.26-bookworm AS build
|
|
WORKDIR /src
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
COPY . .
|
|
RUN CGO_ENABLED=1 go build -ldflags="-s -w" -o /videnc-vibe ./cmd/videnc/
|
|
|
|
FROM debian:bookworm-slim
|
|
# ffmpeg gives ffmpeg+ffprobe; opus-tools gives opusenc; ca-certificates for OMDb/TVmaze HTTPS.
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
ffmpeg opus-tools ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
COPY --from=build /videnc-vibe /usr/local/bin/videnc-vibe
|
|
# logs.db + log files land in the working dir — make it the mounted /data so they persist.
|
|
WORKDIR /data
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["videnc-vibe", "-c", "/config/config.yaml"]
|