Create Docker images for the examples
When those are published on Dockerhub, people will be able to start those examples in fewer steps than the current documentation: https://prometheus.io/docs/introduction/getting_started/#starting-up-some-sample-targets While relying on Docker may not be always wished, giving the possibility to quickly start a daemon that exposes metrics can be useful in many tutorials. The simple and random example are build as static binaries and packaged as single binaries in Docker images. This commit tries really hard to limit the number of per-example maintenance work by sharing most of the Makefile to build the Docker images. The tiny top level Makefiles in each example directory are strictly identical. Updates: #347
This commit is contained in:
parent
671c87b047
commit
ec06aca188
|
@ -7,6 +7,10 @@
|
|||
_obj
|
||||
_test
|
||||
|
||||
# Examples
|
||||
/examples/simple/simple
|
||||
/examples/random/random
|
||||
|
||||
# Architecture specific extensions/prefixes
|
||||
*.[568vq]
|
||||
[568vq].out
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
# This Dockerfile builds an image for a client_golang example.
|
||||
#
|
||||
# Use as (from the root for the client_golang repository):
|
||||
# docker build -f examples/$name/Dockerfile -t prometheus/golang-example-$name .
|
||||
|
||||
# Builder image, where we build the example.
|
||||
FROM golang:1.9.0 AS builder
|
||||
WORKDIR /go/src/github.com/prometheus/client_golang
|
||||
COPY . .
|
||||
WORKDIR /go/src/github.com/prometheus/client_golang/prometheus
|
||||
RUN go get -d
|
||||
WORKDIR /go/src/github.com/prometheus/client_golang/examples/random
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -a -tags netgo -ldflags '-w'
|
||||
|
||||
# Final image.
|
||||
FROM scratch
|
||||
LABEL maintainer "The Prometheus Authors <prometheus-developers@googlegroups.com>"
|
||||
COPY --from=builder /go/src/github.com/prometheus/client_golang/examples/random .
|
||||
EXPOSE 8080
|
||||
ENTRYPOINT ["/random"]
|
|
@ -0,0 +1,20 @@
|
|||
# This Dockerfile builds an image for a client_golang example.
|
||||
#
|
||||
# Use as (from the root for the client_golang repository):
|
||||
# docker build -f examples/$name/Dockerfile -t prometheus/golang-example-$name .
|
||||
|
||||
# Builder image, where we build the example.
|
||||
FROM golang:1.9.0 AS builder
|
||||
WORKDIR /go/src/github.com/prometheus/client_golang
|
||||
COPY . .
|
||||
WORKDIR /go/src/github.com/prometheus/client_golang/prometheus
|
||||
RUN go get -d
|
||||
WORKDIR /go/src/github.com/prometheus/client_golang/examples/simple
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -a -tags netgo -ldflags '-w'
|
||||
|
||||
# Final image.
|
||||
FROM scratch
|
||||
LABEL maintainer "The Prometheus Authors <prometheus-developers@googlegroups.com>"
|
||||
COPY --from=builder /go/src/github.com/prometheus/client_golang/examples/simple .
|
||||
EXPOSE 8080
|
||||
ENTRYPOINT ["/simple"]
|
Loading…
Reference in New Issue