Add dockerfiles, compose file, and telegraf configs

feat/docker
greg linton 2020-04-28 12:25:35 -06:00
parent 7350962204
commit 5232d45065
5 changed files with 80 additions and 1 deletions

View File

@ -25,7 +25,7 @@ GO111MODULE=on
.DEFAULT_GOAL := all
.PHONY: assets dep clean test gotest gotestrace jstest run run-dev ctags
.PHONY: assets dep clean test gotest gotestrace jstest run run-dev ctags clean-ui clean-go local-docker dev-docker run-dev-docker
all: dep build
@ -131,5 +131,24 @@ clean:
rm -f dist/dist_gen.go canned/bin_gen.go protoboards/bin_gen.go server/swagger_gen.go
@rm -f .godep .jsdep .jssrc .bindata
clean-ui:
cd ui && yarn run clean
cd ui && rm -rf node_modules
rm -f dist/dist_gen.go canned/bin_gen.go protoboards/bin_gen.go server/swagger_gen.go
@rm -f .godep .jsdep .jssrc .bindata
clean-go:
if [ -f ${BINARY} ] ; then rm ${BINARY} ; fi
local-docker:
docker build -t chronograf:local -f ./etc/scripts/docker/Dockerfile.local .
dev-docker:
docker build -t chronograf-dev:local -f ./etc/scripts/docker/Dockerfile.dev .
# provides environment with supported versions of go, node, and yarn with code mounted inside.
run-dev-docker: dev-docker
docker run -v $PWD:/go/src/chronograf chronograf-dev:local /bin/bash
ctags:
ctags -R --languages="Go" --exclude=.git --exclude=ui .

View File

@ -0,0 +1,7 @@
FROM golang:1.13-stretch AS build
# Install nodejs
RUN \
curl -L https://nodejs.org/download/release/v10.20.1/node-v10.20.1-linux-x64.tar.gz \
| tar -C /usr/local/ --strip 1 -zxf - \
&& npm install -g yarn

View File

@ -0,0 +1,23 @@
FROM golang:1.13-stretch AS build
# Install nodejs
RUN \
curl -L https://nodejs.org/download/release/v10.20.1/node-v10.20.1-linux-x64.tar.gz \
| tar -C /usr/local/ --strip 1 -zxf - \
&& npm install -g yarn
# Get deps when they are updated
COPY go.mod go.sum Makefile /go/src/github.com/influxdata/chronograf/
WORKDIR /go/src/github.com/influxdata/chronograf/
RUN go mod download
# Build chronograf when updated
COPY . /go/src/github.com/influxdata/chronograf/
WORKDIR /go/src/github.com/influxdata/chronograf/
RUN make clean && make
# Build smaller image
FROM debian:stretch-slim
COPY --from=build /go/src/github.com/influxdata/chronograf/chronograf /bin/chronograf
COPY --from=build /go/src/github.com/influxdata/chronograf/chronoctl /bin/chronoctl
CMD [ "/bin/chronograf" ]

View File

@ -0,0 +1,21 @@
version: "3.8"
services:
chronograf:
depends_on:
- influxdb
image: chronograf:local
ports:
- "8888:8888"
influxdb:
image: influxdb:1.8
ports:
- "8086:8086"
telegraf:
image: telegraf:latest
depends_on:
- influxdb
volumes:
- $PWD/etc/scripts/docker/telegraf.conf:/telegraf.conf
command:
- '--config=/telegraf.conf'

View File

@ -0,0 +1,9 @@
[agent]
flush_interval = "1s"
interval = "1s"
[[inputs.cpu]]
[[inputs.mem]]
[[outputs.influxdb]]
urls = ["http://influxdb:8086"]