From 34a4846130992ea68bff9b2e901007ed22a3c436 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Fri, 25 Nov 2022 12:04:09 +0100 Subject: [PATCH] cleanup in Dockerfile --- Dockerfile | 71 +++++++++++++++++++++++++++++------------------------- Makefile | 8 +++--- 2 files changed, 43 insertions(+), 36 deletions(-) diff --git a/Dockerfile b/Dockerfile index 42e56129..28206b0e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,10 @@ -FROM bci/bci-init:latest +FROM opensuse/tumbleweed:latest LABEL Description="Warewulf Base Container" LABEL maintainer="Christian Goll " -RUN zypper -n install \ +RUN zypper -n install --no-recommends \ cpio \ gzip \ pigz \ @@ -15,6 +15,7 @@ RUN zypper -n install \ tftp \ go1.18 \ git \ + systemd \ && \ zypper -n install -t pattern devel_basis && \ zypper clean -a && \ @@ -23,13 +24,29 @@ RUN zypper -n install \ # now build the warewulf COPY . /warewulf-src -RUN cd /warewulf-src &&\ - make clean &&\ - make lint &&\ - make -# Our dhcpd will listen on ANY interface, limits will be handled by container runtime -RUN export DHCPDCONF=/etc/sysconfig/dhcpd; test -e $DHCPDCONF && \ +RUN cd /warewulf-src &&\ + make contclean &&\ + make genconfig \ + PREFIX=/usr \ + BINDIRa=/usr/bin \ + SYSCONFDIR=/etc \ + DATADIR=/usr/share \ + LOCALSTATEDIR=/var/lib \ + SHAREDSTATEDIR=/var/lib \ + MANDIR=/usr/share/man \ + INFODIR=/usr/share/info \ + DOCDIR=/usr/share/doc \ + SRVDIR=/var/lib \ + TFTPDIR=/srv/tftpboot \ + SYSTEMDDIR=/usr/lib/systemd/system \ + BASHCOMPDIR=/etc/bash_completion.d/ \ + FIREWALLDDIR=/usr/lib/firewalld/services \ + WWCLIENTDIR=/warewulf &&\ + make lint &&\ + make &&\ + make install &&\ + export DHCPDCONF=/etc/sysconfig/dhcpd; test -e $DHCPDCONF && \ sed -i 's/^DHCPD_INTERFACE=""/DHCPD_INTERFACE="ANY"/' $DHCPDCONF && \ sed -i 's/^DHCPD_RUN_CHROOTED="yes"/DHCPD_RUN_CHROOTED="no"/' $DHCPDCONF && \ WW4CONF=/etc/warewulf/warewulf.conf; test -e $WW4CONF && \ @@ -37,36 +54,24 @@ RUN export DHCPDCONF=/etc/sysconfig/dhcpd; test -e $DHCPDCONF && \ sed -i 's/^netmask:.*/netmask: EMPTY/' $WW4CONF && \ sed -i 's/^network:.*/network: EMPTY/' $WW4CONF && \ sed -i 's/^ range start:.*/ range start: EMPTY/' $WW4CONF && \ - sed -i 's/^ range end:.*/ range end: EMPTY/' $WW4CONF + sed -i 's/^ range end:.*/ range end: EMPTY/' $WW4CONF && \ + mkdir -p /container && \ + cp -vr container-scripts/label-* \ + container-scripts/wwctl \ + container-scripts/warewulf.service \ + /container &&\ + mv -v container-scripts/ww4-config.service /etc/systemd/system/ &&\ + systemctl enable ww4-config + +# cleanup container +RUN zypper rm -yu go &&\ + rm -rf /warewulf-src -# We need the configs on the host as these files are quite important -RUN mkdir -p /container/warewulf && cp -rv /etc/warewulf/* /container/warewulf -COPY warewulf.service \ - warewulf-container-manage.sh \ - wwctl \ - label-install \ - label-uninstall \ - label-purge \ - /container -# Add a service which will create a porper config on the startup -COPY ww4-config.service \ - /etc/systemd/system/ - -RUN systemctl enable ww4-config - - -RUN chmod +x \ - /container/wwctl \ - /container/warewulf-container-manage.sh \ - /container/label-* - -# need systemd for tftp and dhcpd -#ENTRYPOINT [ "/container/label-run" ] CMD [ "/usr/sbin/init" ] -#EXPOSE 67/udp 68/udp 69/udp 9873 +EXPOSE 67/udp 68/udp 69/udp 9873 LABEL INSTALL="/usr/bin/docker run --env IMAGE=IMAGE --rm --privileged -v /:/host IMAGE /bin/bash /container/label-install" LABEL UNINSTALL="/usr/bin/docker run --rm --privileged -v /:/host IMAGE /bin/bash /container/label-uninstall" diff --git a/Makefile b/Makefile index 23c42bae..c546eb87 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all +.PHONY: all clean contclean -include Defaults.mk @@ -289,7 +289,7 @@ wwapic: ## Build the sample wwapi client. wwapird: ## Build the rest api server (revese proxy to the grpc api server). go build -o ./wwapird internal/app/api/wwapird/wwapird.go -clean: +contclean: rm -f wwclient rm -f wwctl rm -rf .dist @@ -298,7 +298,6 @@ clean: rm -rf bash_completion.d rm -f man_page rm -rf man_pages - rm -rf vendor rm -f warewulf.spec rm -f config rm -f Defaults.mk @@ -307,6 +306,9 @@ clean: rm -f update_configuration rm -f print_defaults +clean: contclean + rm -rf vendor + install: files install_wwclient debinstall: files debfiles