Add building in fcking docker environment

This commit is contained in:
Iļja Pavļikhin 2023-08-01 22:36:27 +00:00
parent 131f6eba38
commit a5f6c60035
3 changed files with 43 additions and 0 deletions

1
.gitignore vendored
View file

@ -3,3 +3,4 @@ telegabber
sessions/
session.dat
session.dat.new
release/

36
Dockerfile Normal file
View file

@ -0,0 +1,36 @@
FROM golang:1.19-bookworm AS base
RUN apt-get update
run apt-get install -y libssl-dev cmake build-essential gperf libz-dev make git
FROM base AS tdlib
ARG TD_COMMIT
ARG MAKEOPTS
RUN git clone https://github.com/tdlib/td /src/
RUN git -C /src/ checkout "${TD_COMMIT}"
RUN mkdir build
WORKDIR /build/
RUN cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/compiled/ /src/
RUN cmake --build . ${MAKEOPTS}
RUN make install
FROM base AS cache
ARG VERSION
COPY --from=tdlib /compiled/ /usr/local/
COPY ./ /src
RUN git -C /src checkout "${VERSION}"
WORKDIR /src
RUN go get
FROM cache AS build
ARG MAKEOPTS
WORKDIR /src
RUN make ${MAKEOPTS}
FROM scratch AS telegabber
COPY --from=build /src/telegabber /usr/local/bin/
ENTRYPOINT ["/usr/local/bin/telegabber"]
FROM scratch AS binaries
COPY --from=telegabber /usr/local/bin/telegabber /

View file

@ -1,6 +1,9 @@
.PHONY: all test
COMMIT := $(shell git rev-parse --short HEAD)
TD_COMMIT := "8517026415e75a8eec567774072cbbbbb52376c1"
VERSION := "v1.7.1"
MAKEOPTS := "-j4"
all:
go build -ldflags "-X main.commit=${COMMIT}" -o telegabber
@ -10,3 +13,6 @@ test:
lint:
$(GOPATH)/bin/golint ./...
build_indocker:
docker build --build-arg "TD_COMMIT=${TD_COMMIT}" --build-arg "VERSION=${VERSION}" --build-arg "MAKEOPTS=${MAKEOPTS}" --output=release --target binaries .