cleanup in Dockerfile
This commit is contained in:
71
Dockerfile
71
Dockerfile
@@ -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"
|
||||
|
||||
8
Makefile
8
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
|
||||
|
||||
Reference in New Issue
Block a user