d694cc087b
There are some DIB methods which need to use it which means that DIB image builds will fail without it (and procps is not included in the base Docker image) Change-Id: I3cf3ce765a91a93e72465739ce68bc1238955126
85 lines
2.5 KiB
Docker
85 lines
2.5 KiB
Docker
# Copyright (c) 2019 Red Hat, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
FROM opendevorg/python-builder as builder
|
|
|
|
ARG ZUUL_SIBLINGS=""
|
|
COPY . /tmp/src
|
|
RUN assemble
|
|
|
|
FROM opendevorg/python-base as nodepool-base
|
|
|
|
COPY --from=builder /output/ /output
|
|
RUN /output/install-from-bindep
|
|
|
|
### Containers should NOT run as root as a good practice
|
|
|
|
# although this feels odd ... by default has group "shadow", meaning
|
|
# uid_entrypoint can't update it. This is necessary for things like
|
|
# sudo to work.
|
|
RUN chown root:root /etc/shadow
|
|
|
|
RUN chmod g=u /etc/passwd /etc/shadow
|
|
ENV APP_ROOT=/var/lib/nodepool
|
|
ENV HOME=${APP_ROOT}
|
|
ENV USER_NAME=nodepool
|
|
RUN mkdir ${APP_ROOT}
|
|
RUN chown 10001:1001 ${APP_ROOT}
|
|
COPY tools/uid_entrypoint.sh /uid_entrypoint
|
|
ENTRYPOINT ["/uid_entrypoint"]
|
|
|
|
FROM nodepool-base as nodepool
|
|
USER 10001
|
|
CMD ["/usr/local/bin/nodepool"]
|
|
|
|
FROM nodepool-base as nodepool-launcher
|
|
USER 10001
|
|
CMD _DAEMON_FLAG=${DEBUG:+-d} && \
|
|
_DAEMON_FLAG=${_DAEMON_FLAG:--f} && \
|
|
/usr/local/bin/nodepool-launcher ${_DAEMON_FLAG}
|
|
|
|
FROM nodepool-base as nodepool-builder
|
|
# dib needs sudo
|
|
RUN echo "nodepool ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/nodepool-sudo \
|
|
&& chmod 0440 /etc/sudoers.d/nodepool-sudo
|
|
# binary deps; see
|
|
# https://docs.openstack.org/diskimage-builder/latest/developer/vhd_creation.html
|
|
# about the vhd-util deps
|
|
RUN \
|
|
apt-get update \
|
|
&& apt-get install -y gnupg2 \
|
|
&& apt-key adv --keyserver keyserver.ubuntu.com --recv 2B5DE24F0EC9F98BD2F85CA315B6CE7C018D05F5 \
|
|
&& echo "deb http://ppa.launchpad.net/openstack-ci-core/vhd-util/ubuntu bionic main" >> /etc/apt/sources.list \
|
|
&& apt-get update \
|
|
&& apt-get install -y \
|
|
curl \
|
|
debian-keyring \
|
|
git \
|
|
kpartx \
|
|
qemu-utils \
|
|
ubuntu-keyring \
|
|
vhd-util \
|
|
debootstrap \
|
|
procps \
|
|
yum \
|
|
yum-utils \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
USER 10001
|
|
CMD _DAEMON_FLAG=${DEBUG:+-d} && \
|
|
_DAEMON_FLAG=${_DAEMON_FLAG:--f} && \
|
|
/usr/local/bin/nodepool-builder ${_DAEMON_FLAG}
|