# # STAGE 1: build static web files # FROM node:20-bookworm-slim AS frontend WORKDIR /src # # install dependencies COPY client/package*.json client/.npmrc ./ RUN npm install # # build client COPY client/ . RUN npm run build # # STAGE 2: build executable binary # FROM golang:1.24-bookworm AS builder WORKDIR /app COPY . . RUN go get -v -t -d .; \ CGO_ENABLED=0 go build -o bin/neko_rooms cmd/neko_rooms/main.go # # STAGE 3: build a small image # FROM scratch COPY --from=builder /app/bin/neko_rooms /app/bin/neko_rooms COPY --from=frontend /src/dist/ /var/www ENV NEKO_ROOMS_BIND=:8080 ENV NEKO_ROOMS_ADMIN_STATIC=/var/www EXPOSE 8080 ENTRYPOINT [ "/app/bin/neko_rooms" ] CMD [ "serve" ]