Add Docker in Docker container
Change-Id: I3c953125ed0105b7e8b62e62da56bf3fa30889d1 Partially-Implements: blueprint multinode-gate
This commit is contained in:
parent
4beea51e75
commit
6a9beb4a33
28
docker/dind/Dockerfile.j2
Normal file
28
docker/dind/Dockerfile.j2
Normal file
@ -0,0 +1,28 @@
|
||||
FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
|
||||
MAINTAINER Kolla Project (https://launchpad.net/kolla)
|
||||
|
||||
{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
|
||||
|
||||
# Since the gate cannot do DinD on centos due to the age of the kernel, we don't
|
||||
# build a true DinD image. Should the time come that we get a newer kernel in
|
||||
# the centos gate and we want to do multinode we can populate this container
|
||||
RUN /bin/true
|
||||
|
||||
{% elif base_distro in ['ubuntu', 'debian'] %}
|
||||
|
||||
RUN echo 'deb http://apt.dockerproject.org/repo ubuntu-trusty main' > /etc/apt/sources.list.d/docker.list \
|
||||
&& apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
btrfs-tools \
|
||||
docker-engine=1.8.2-0~trusty \
|
||||
openssh-server \
|
||||
&& apt-get clean \
|
||||
&& pip --no-cache-dir install docker-py
|
||||
|
||||
{% endif %}
|
||||
|
||||
COPY start.sh /usr/local/bin/kolla_start
|
||||
RUN chmod 755 /usr/local/bin/kolla_start
|
||||
|
||||
{{ include_footer }}
|
28
docker/dind/start.sh
Normal file
28
docker/dind/start.sh
Normal file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
|
||||
# External processes will be occuring and we must wait for them
|
||||
while [[ ! -e "/kolla_dind_ready" ]]; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
docker daemon -s btrfs 2>&1 > docker.log &
|
||||
docker_pid=$!
|
||||
|
||||
mkdir /var/run/sshd
|
||||
/usr/sbin/sshd -D 2>&1 > sshd.log &
|
||||
sshd_pid=$!
|
||||
|
||||
mkdir -p /root/.ssh/
|
||||
echo "${SSH_PUB}" > /root/.ssh/authorized_keys
|
||||
|
||||
# Wait for docker daemon
|
||||
sleep 5
|
||||
|
||||
# Due to a quirk in the cloning method we end up with a bunch of dead containers
|
||||
docker rm -v -f $(docker ps -a --no-trunc -q)
|
||||
|
||||
# Wait until child processes exit (they should never exit)
|
||||
wait
|
@ -52,7 +52,7 @@ infra = ceph,data,mariadb,haproxy,keepalived,kolla-ansible,memcached,mongodb,ope
|
||||
main = cinder,ceilometer,glance,heat,horizon,keystone,neutron,nova,swift
|
||||
aux = designate,gnocchi,ironic,magnum,zaqar
|
||||
default = data,kolla-ansible,glance,haproxy,heat,horizon,keepalived,keystone,memcached,mariadb,neutron,nova,openvswitch,rabbitmq,rsyslog
|
||||
gate = ceph,cinder,data,glance,haproxy,heat,horizon,keepalived,keystone,kolla-ansible,mariadb,memcached,neutron,nova,openvswitch,rabbitmq,rsyslog
|
||||
gate = ceph,cinder,data,dind,glance,haproxy,heat,horizon,keepalived,keystone,kolla-ansible,mariadb,memcached,neutron,nova,openvswitch,rabbitmq,rsyslog
|
||||
|
||||
# Provide location of sources for source install builds.
|
||||
# Example:
|
||||
|
Loading…
Reference in New Issue
Block a user