Skip to content

Instantly share code, notes, and snippets.

@crazytaxii
Last active January 15, 2024 03:28
Show Gist options
  • Save crazytaxii/09389f76058497855b16ed8095d2a85d to your computer and use it in GitHub Desktop.
Save crazytaxii/09389f76058497855b16ed8095d2a85d to your computer and use it in GitHub Desktop.
Build DeepFlow server image

Clone DeepFlow git repositry https://github.com/deepflowio/deepflow and make your change.

Add a new Dockerfile for building DeepFlow server:

$ cat <<EOF > ./server/Dockerfile.ci
FROM crazytaxii/deepflow-builder:latest AS builder

COPY . /go/deepflow

WORKDIR /go/deepflow/server

RUN make libs/geo/ip_info.go
RUN CGO_ENABLED=0 make server

FROM alpine:latest

RUN apk update && \
    apk upgrade && \
    apk add tzdata

COPY ./server/server.yaml /etc/
RUN mkdir /etc/mysql
COPY ./server/controller/db/mysql/migration/rawsql /etc/mysql
COPY ./server/controller/cloud/filereader/manual_data_samples.yaml /etc/
COPY ./server/querier/db_descriptions /etc/db_descriptions/

COPY --from=builder /go/deepflow/server/bin/deepflow-server /bin/deepflow-server

CMD /bin/deepflow-server
EOF

Build your image docker build -t ${repo}/deepflow-server:dev -f ./server/Dockerfile.ci ..

BTW, the Dockerfile of builder image:

FROM golang:1.20-alpine3.19

RUN apk update && \
    apk add protoc python3 py3-ujson make git
RUN go install github.com/gogo/protobuf/protoc-gen-gofast@v1.3.2 && \
    go install github.com/gogo/protobuf/protoc-gen-gogo@v1.3.2 && \
    go install github.com/benbjohnson/tmpl@v1.1.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment