Files
linuxkit/projects/logging/pkg/memlogd/Makefile
Magnus Skjegstad 0511fdb431 Add logging project
Adds a logging daemon that collects logs in a ring buffer in a runc container.
The tools logwrite and logread can be used to read/write logs. The logging
daemon can be sent open file descriptors that will be read and included
in the logs.

Modifies init to start the daemon and use logwrite to capture logs from runc.

Signed-off-by: Magnus Skjegstad <magnus@skjegstad.com>
2017-04-16 21:08:57 +02:00

67 lines
2.5 KiB
Makefile

GO_COMPILE=mobylinux/go-compile:3afebc59c5cde31024493c3f91e6102d584a30b9@sha256:e0786141ea7df8ba5735b63f2a24b4ade9eae5a02b0e04c4fca33b425ec69b0a
SHA_IMAGE=alpine:3.5@sha256:dfbd4a3a8ebca874ebd2474f044a0b33600d4523d03b0df76e5c5986cb02d7e8
MEMLOGD_BINARY=usr/bin/memlogd
LOGWRITE_BINARY=usr/bin/logwrite
STARTMEMLOGD_BINARY=usr/bin/startmemlogd
LOGREAD_BINARY=sbin/logread
IMAGE=memlogd
.PHONY: tag push clean container
default: tag
DEPS=$(MEMLOGD_BINARY) $(LOGWRITE_BINARY) $(STARTMEMLOGD_BINARY) $(LOGREAD_BINARY)
$(MEMLOGD_BINARY): cmd/memlogd/main.go
mkdir -p $(dir $@)
tar -Ccmd/memlogd -cf - main.go | docker run --rm --net=none --log-driver=none -i $(GO_COMPILE) -o $@ | tar xf -
$(LOGWRITE_BINARY): cmd/logwrite/main.go
mkdir -p $(dir $@)
tar -Ccmd/logwrite -cf - main.go | docker run --rm --net=none --log-driver=none -i $(GO_COMPILE) -o $@ | tar xf -
$(STARTMEMLOGD_BINARY): cmd/startmemlogd/main.go
mkdir -p $(dir $@)
tar -Ccmd/startmemlogd -cf - main.go | docker run --rm --net=none --log-driver=none -i $(GO_COMPILE) -o $@ | tar xf -
$(LOGREAD_BINARY): cmd/logread/main.go
mkdir -p $(dir $@)
tar -Ccmd/logread -cf - main.go | docker run --rm --net=none --log-driver=none -i $(GO_COMPILE) -o $@ | tar xf -
containers: $(MEMLOGD_BINARY) Dockerfile.memlogd config.json
mkdir -p containers/init/memlogd/rootfs
tar -cf - $^ | docker build -f Dockerfile.memlogd -t $(IMAGE):build1 --no-cache -
docker create --name $(IMAGE)-build1 $(IMAGE):build1
docker export $(IMAGE)-build1 | tar -Ccontainers/init/memlogd/rootfs -xv -
docker rm $(IMAGE)-build1
docker rmi $(IMAGE):build1
mv containers/init/memlogd/rootfs/Dockerfile.memlogd containers/init/memlogd/rootfs/Dockerfile
mv containers/init/memlogd/rootfs/config.json containers/init/memlogd
container: Dockerfile $(LOGWRITE_BINARY) $(STARTMEMLOGD_BINARY) $(LOGREAD_BINARY) containers
tar cf - $^ | docker build --no-cache -t $(IMAGE):build -
hash: Dockerfile Dockerfile.memlogd $(DEPS)
find $^ -type f | xargs cat | docker run --rm -i $(SHA_IMAGE) sha1sum - | sed 's/ .*//' > hash
push: hash container
docker pull linuxkit/$(IMAGE):$(shell cat hash) || \
(docker tag $(IMAGE):build linuxkit/$(IMAGE):$(shell cat hash) && \
docker push linuxkit/$(IMAGE):$(shell cat hash))
docker rmi $(IMAGE):build
rm -f hash
tag: hash container
docker pull linuxkit/$(IMAGE):$(shell cat hash) || \
docker tag $(IMAGE):build linuxkit/$(IMAGE):$(shell cat hash)
docker rmi $(IMAGE):build
rm -f hash
clean:
rm -rf hash usr containers sbin
.DELETE_ON_ERROR: