You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
docker-net-dhcp/Makefile

56 lines
1.4 KiB
Makefile

PLUGIN_NAME = ghcr.io/devplayer0/docker-net-dhcp
PLUGIN_TAG ?= golang
PLATFORMS ?= linux/amd64,linux/arm64
SOURCES = $(shell find pkg/ cmd/ -name '*.go')
BINARY = bin/net-dhcp
.PHONY: all debug build create enable disable pdebug push clean
all: create enable
bin/%: $(SOURCES)
go build -o $@ ./cmd/$(shell basename $@)
debug: $(BINARY)
sudo $< -log debug
build: $(SOURCES)
docker build -t $(PLUGIN_NAME):rootfs .
plugin/rootfs: build
mkdir -p plugin/rootfs
docker create --name tmp $(PLUGIN_NAME):rootfs
docker export tmp | tar xC plugin/rootfs
docker rm -vf tmp
plugin: plugin/rootfs config.json
cp config.json $@/
create: plugin
docker plugin rm -f $(PLUGIN_NAME):$(PLUGIN_TAG) || true
docker plugin create $(PLUGIN_NAME):$(PLUGIN_TAG) $<
docker plugin set $(PLUGIN_NAME):$(PLUGIN_TAG) LOG_LEVEL=trace
enable: plugin
docker plugin enable $(PLUGIN_NAME):$(PLUGIN_TAG)
disable:
docker plugin disable $(PLUGIN_NAME):$(PLUGIN_TAG)
pdebug: create enable
sudo sh -c 'tail -f /var/lib/docker/plugins/*/rootfs/var/log/net-dhcp.log'
push: create
docker plugin push $(PLUGIN_NAME):$(PLUGIN_TAG)
multiarch: $(SOURCES)
docker buildx build --platform=$(PLATFORMS) -o type=local,dest=$@ .
push-multiarch: multiarch config.json
scripts/push_multiarch_plugin.py -p $(PLATFORMS) config.json multiarch $(PLUGIN_NAME):$(PLUGIN_TAG)
clean:
-rm -rf multiarch/
-rm -rf plugin/
-rm bin/*