cleanup in Dockerfile

This commit is contained in:
Christian Goll
2022-11-25 12:04:09 +01:00
parent f831db1875
commit 34a4846130
2 changed files with 43 additions and 36 deletions

View File

@@ -1,10 +1,10 @@
FROM bci/bci-init:latest
FROM opensuse/tumbleweed:latest
LABEL Description="Warewulf Base Container"
LABEL maintainer="Christian Goll <cgoll@suse.com>"
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"