diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..97d906e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM cgr.dev/chainguard/wolfi-base + +RUN apk add --no-cache tini bash + +# nobody 65534:65534 +USER 65534:65534 + +# copy the binary and all of the default plugins +COPY configurator /configurator +COPY lib/* /lib/* + +CMD ["/configurator"] + +ENTRYPOINT [ "/sbin/tini", "--" ] \ No newline at end of file diff --git a/Makefile b/Makefile index 0ca212f..49f7065 100644 --- a/Makefile +++ b/Makefile @@ -5,21 +5,26 @@ all: plugins exe test # build the main executable to make configs main: exe driver: exe +binaries: exe exe: go build --tags=all -o configurator + +docker: binaries plugins + docker build -t configurator:latest . + # build all of the generators into plugins plugins: mkdir -p lib - go build -buildmode=plugin -o lib/conman.so internal/generator/plugins/conman/conman.go - go build -buildmode=plugin -o lib/coredhcp.so internal/generator/plugins/coredhcp/coredhcp.go - go build -buildmode=plugin -o lib/dhcpd.so internal/generator/plugins/dhcpd/dhcpd.go - go build -buildmode=plugin -o lib/dnsmasq.so internal/generator/plugins/dnsmasq/dnsmasq.go - go build -buildmode=plugin -o lib/example.so internal/generator/plugins/example/example.go - go build -buildmode=plugin -o lib/hostfile.so internal/generator/plugins/hostfile/hostfile.go - go build -buildmode=plugin -o lib/powerman.so internal/generator/plugins/powerman/powerman.go - go build -buildmode=plugin -o lib/syslog.so internal/generator/plugins/syslog/syslog.go - go build -buildmode=plugin -o lib/warewulf.so internal/generator/plugins/warewulf/warewulf.go + go build -buildmode=plugin -o lib/conman.so pkg/generator/plugins/conman/conman.go + go build -buildmode=plugin -o lib/coredhcp.so pkg/generator/plugins/coredhcp/coredhcp.go + go build -buildmode=plugin -o lib/dhcpd.so pkg/generator/plugins/dhcpd/dhcpd.go + go build -buildmode=plugin -o lib/dnsmasq.so pkg/generator/plugins/dnsmasq/dnsmasq.go + go build -buildmode=plugin -o lib/example.so pkg/generator/plugins/example/example.go + go build -buildmode=plugin -o lib/hostfile.so pkg/generator/plugins/hostfile/hostfile.go + go build -buildmode=plugin -o lib/powerman.so pkg/generator/plugins/powerman/powerman.go + go build -buildmode=plugin -o lib/syslog.so pkg/generator/plugins/syslog/syslog.go + go build -buildmode=plugin -o lib/warewulf.so pkg/generator/plugins/warewulf/warewulf.go # remove executable and all built plugins clean: