bfa8c97d3a
l is to let user customize the base image of the component by passing FROM=myimage during the build process. This would let any project leveraging Airship ensure that the base image is matching the security requirements for that project and still use the same Dockerfile. This will also ease the control of the /etc/apt/source.list and thereby the result of apt-get update/upgrade procedure. 2. The above goal is achievable by using docker-ce feature such as: ARG FROM="defaultbaseimage:xx" FROM ${FROM} For this reason, the installation of docker.io in the Zuul gating is beeing replaced by docker-ce. 3. Third Goal is to bring consistency with the other compoenents leveraging Helm such as the openstack-helm and potentially use bindep the same way the LOCI images are to ensure 4. The new syntax in the Dockerfile is still commented out until the associated image builder have been updated to use docker-ce as they have been for the LOCI images. Change-Id: I9a9d63329bea2b562f297705dc51661896a592f2
72 lines
2.7 KiB
Docker
72 lines
2.7 KiB
Docker
ARG FROM=ubuntu:16.04
|
|
FROM ${FROM}
|
|
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
ENV container docker
|
|
|
|
# Don't start any optional services except for the few we need.
|
|
RUN find /etc/systemd/system \
|
|
/lib/systemd/system \
|
|
-path '*.wants/*' \
|
|
-not -name '*journald*' \
|
|
-not -name '*systemd-tmpfiles*' \
|
|
-not -name '*systemd-user-sessions*' \
|
|
-exec rm \{} \;
|
|
RUN systemctl set-default multi-user.target
|
|
|
|
# everything else below is to setup maas into the systemd initialized
|
|
# container based on ubuntu 16.04
|
|
RUN apt-get -qq update && \
|
|
apt-get -y install sudo \
|
|
software-properties-common \
|
|
jq
|
|
|
|
# TODO(alanmeadows)
|
|
# we need systemd 231 per https://github.com/systemd/systemd/commit/a1350640ba605cf5876b25abfee886488a33e50b
|
|
#RUN add-apt-repository ppa:pitti/systemd -y && add-apt-repository ppa:maas/stable -y && apt-get update
|
|
RUN apt-get install -y systemd
|
|
|
|
# install syslog and enable it
|
|
RUN apt-get install -y rsyslog
|
|
RUN systemctl enable rsyslog.service
|
|
|
|
ENV MAAS_VERSION 2.3.0-6434-gd354690-0ubuntu1~16.04.1
|
|
|
|
# install maas
|
|
RUN rsyslogd; apt-get install -y maas-cli=$MAAS_VERSION \
|
|
maas-dns=$MAAS_VERSION \
|
|
maas-region-api=$MAAS_VERSION \
|
|
avahi-utils \
|
|
dbconfig-pgsql=2.0.4ubuntu1 \
|
|
iputils-ping \
|
|
postgresql \
|
|
tcpdump \
|
|
python3-pip
|
|
|
|
|
|
RUN apt-get download maas-region-controller=$MAAS_VERSION && \
|
|
# remove postinstall script in order to avoid db_sync
|
|
dpkg-deb --extract maas-region-controller*.deb maas-region-controller && \
|
|
dpkg-deb --control maas-region-controller*.deb maas-region-controller/DEBIAN && \
|
|
rm maas-region-controller/DEBIAN/postinst && \
|
|
dpkg-deb --build maas-region-controller && \
|
|
dpkg -i maas-region-controller.deb && \
|
|
pg_dropcluster --stop 9.5 main
|
|
|
|
# 2.3 workarounds
|
|
COPY 2.3_nat_fix.patch /tmp/2.3_nat_fix.patch
|
|
COPY 2.3_proxy_port.patch /tmp/2.3_proxy_port.patch
|
|
COPY 2.3_route.patch /tmp/2.3_route.patch
|
|
COPY 2.3_recursion_fix.patch /tmp/2.3_recursion_fix.patch
|
|
RUN cd /usr/lib/python3/dist-packages/maasserver/utils && patch __init__.py < /tmp/2.3_nat_fix.patch
|
|
RUN cd /usr/lib/python3/dist-packages/maasserver && patch compose_preseed.py < /tmp/2.3_proxy_port.patch
|
|
RUN cd /usr/lib/python3/dist-packages/maasserver && patch preseed_network.py < /tmp/2.3_route.patch
|
|
RUN cd /usr/lib/python3/dist-packages/maasserver/models/signals && patch interfaces.py < /tmp/2.3_recursion_fix.patch
|
|
|
|
COPY journalctl-to-tty.service /etc/systemd/system/journalctl-to-tty.service
|
|
RUN mkdir -p /etc/systemd/system/basic.target.wants ;\
|
|
ln -s /etc/systemd/system/journalctl-to-tty.service /etc/systemd/system/basic.target.wants/journalctl-to-tty.service
|
|
|
|
# initalize systemd
|
|
CMD ["/bin/bash", "-c", "exec /sbin/init --log-target=console 3>&1"]
|