FROM docker.io/library/golang:1.25 AS build # Build metadata for telesrv's startup log (git_commit/git_branch/... in # cmd/telesrv/buildinfo.go). .containerignore excludes .git, so go build's # automatic VCS stamping sees no repo; pass these in explicitly, e.g.: # podman build \ # --build-arg GIT_COMMIT="$(git rev-parse HEAD)" \ # --build-arg GIT_BRANCH="$(git rev-parse --abbrev-ref HEAD)" \ # --build-arg GIT_TREE_STATE="$(git diff --quiet && echo clean || echo dirty)" \ # --build-arg BUILD_TIME="$(date -u +%Y-%m-%dT%H:%M:%SZ)" \ # -t owpengram-server -f Containerfile . ARG GIT_COMMIT=unknown ARG GIT_BRANCH=unknown ARG GIT_TREE_STATE=unknown ARG BUILD_TIME=unknown WORKDIR /src COPY . . RUN CGO_ENABLED=0 go build -trimpath \ -ldflags "-X main.gitCommit=${GIT_COMMIT} -X main.gitBranch=${GIT_BRANCH} -X main.gitTreeState=${GIT_TREE_STATE} -X main.buildTime=${BUILD_TIME}" \ -o /out/gramsrv ./cmd/telesrv RUN CGO_ENABLED=0 go build -trimpath -o /out/telesrv-admin ./cmd/telesrv-admin RUN CGO_ENABLED=0 go build -trimpath -o /out/createuser ./cmd/createuser FROM docker.io/library/alpine:3.20 RUN apk add --no-cache ca-certificates tzdata ffmpeg WORKDIR /app COPY --from=build /out/gramsrv /app/gramsrv COPY --from=build /out/telesrv-admin /app/telesrv-admin COPY --from=build /out/createuser /app/createuser COPY --from=build /src/data/langpack /app/data/langpack COPY --from=build /src/data/sticker-seed /app/data/sticker-seed EXPOSE 2398 2600 ENTRYPOINT ["/app/gramsrv"]