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
|
main = cinder,ceilometer,glance,heat,horizon,keystone,neutron,nova,swift
|
||||||
aux = designate,gnocchi,ironic,magnum,zaqar
|
aux = designate,gnocchi,ironic,magnum,zaqar
|
||||||
default = data,kolla-ansible,glance,haproxy,heat,horizon,keepalived,keystone,memcached,mariadb,neutron,nova,openvswitch,rabbitmq,rsyslog
|
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.
|
# Provide location of sources for source install builds.
|
||||||
# Example:
|
# Example:
|
||||||
|
Loading…
Reference in New Issue
Block a user