Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 36 additions & 6 deletions server/manifest/docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,37 @@
# SPDX-FileCopyrightText: 2026 M5Stack Technology CO LTD
# SPDX-License-Identifier: MIT
#
# Multi-stage build. Run from the server/ directory:
# cd server && docker build -t stackchan-server -f manifest/docker/Dockerfile .
#
# Or with docker compose using a Git URL context:
# build:
# context: https://github.com/m5stack/StackChan.git#main:server
# dockerfile: manifest/docker/Dockerfile

FROM golang:1.24-alpine AS builder

RUN apk add --no-cache gcc musl-dev sqlite-dev

WORKDIR /src

COPY go.mod go.sum ./
RUN go mod download

COPY . .

ENV CGO_ENABLED=1 GOOS=linux
RUN go build -trimpath -ldflags="-s -w" -o /out/stackChan main.go

FROM alpine:latest
ENV WORKDIR=/app
WORKDIR $WORKDIR
COPY ./stackChan $WORKDIR/stackChan
COPY ./config.yaml $WORKDIR/config.yaml
RUN chmod +x $WORKDIR/stackChan
CMD ["./stackChan"]

RUN apk add --no-cache ca-certificates tzdata

WORKDIR /app

COPY --from=builder /out/stackChan /app/stackChan
COPY --from=builder /src/manifest/config/config.yaml /app/config.yaml

EXPOSE 12800

CMD ["/app/stackChan"]