aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
Diffstat (limited to 'docker')
-rw-r--r--docker/chronos/Dockerfile.j224
-rw-r--r--docker/marathon/Dockerfile.j250
-rw-r--r--docker/marathon/java8-runtime-headless9
-rw-r--r--docker/marathon/openjdk.list2
-rw-r--r--docker/mesos/mesos-base/Dockerfile.j216
-rw-r--r--docker/mesos/mesos-master/Dockerfile.j210
-rw-r--r--docker/mesos/mesos-slave/Dockerfile.j237
-rw-r--r--docker/mesos/mesos-slave/docker.list2
-rw-r--r--docker/mesos/mesos-slave/docker.repo6
-rw-r--r--docker/mesosphere/mesosphere-base/Dockerfile.j217
-rw-r--r--docker/mesosphere/mesosphere-base/mesosphere.list2
-rw-r--r--docker/zookeeper/Dockerfile.j231
-rw-r--r--docker/zookeeper/extend_start.sh6
-rw-r--r--docker/zookeeper/zookeeper_sudoers1
14 files changed, 213 insertions, 0 deletions
diff --git a/docker/chronos/Dockerfile.j2 b/docker/chronos/Dockerfile.j2
new file mode 100644
index 000000000..7c9d73c03
--- /dev/null
+++ b/docker/chronos/Dockerfile.j2
@@ -0,0 +1,24 @@
+FROM {{ namespace }}/{{ image_prefix }}mesos-base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
+
+RUN yum install -y \
+ chronos \
+ && yum clean all
+
+{% elif base_distro in ['ubuntu', 'debian'] %}
+
+RUN apt-get install -y --no-install-recommends \
+ chronos \
+ && apt-get clean
+
+{% endif %}
+
+RUN useradd --user-group chronos
+
+CMD chronos run_jar --http_port $CHRONOS_HTTP_PORT --master $CHRONOS_MASTER --zk_hosts $CHRONOS_ZK_HOSTS
+
+{{ include_footer }}
+
+USER chronos
diff --git a/docker/marathon/Dockerfile.j2 b/docker/marathon/Dockerfile.j2
new file mode 100644
index 000000000..ba289ec11
--- /dev/null
+++ b/docker/marathon/Dockerfile.j2
@@ -0,0 +1,50 @@
+FROM {{ namespace }}/{{ image_prefix }}mesos-base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
+
+RUN yum install -y \
+ marathon \
+ && yum clean all
+
+{% elif base_distro in ['ubuntu', 'debian'] %}
+
+COPY openjdk.list /etc/apt/sources.list.d/openjdk.list
+
+RUN apt-key adv --keyserver keyserver.ubuntu.com --recv DA1A4A13543B466853BAF164EB9B1D8886F44E2A \
+ && apt-get update
+
+# NOTE(nihilifer): Marathon package for Ubuntu depends on Oracle Java and
+# there is no official way to use OpenJDK. There is no way to accept the
+# license in kolla. That's why the fake package is created here and OpenJDK
+# is used anyway.
+# We only have to do this with Ubuntu - CentOS packages don't depend strictly
+# on Oracle JDK and installing them by yum just installs OpenJDK as a
+# dependency.
+
+RUN apt-get install -y --no-install-recommends \
+ equivs \
+ gcc \
+ && apt-get clean
+
+COPY java8-runtime-headless /
+
+RUN equivs-build java8-runtime-headless \
+ && dpkg -i java8-runtime-headless_42_all.deb \
+ && rm java8-runtime-headless java8-runtime-headless_42_all.deb
+
+RUN apt-get install -y --no-install-recommends \
+ marathon \
+ openjdk-8-jre-headless \
+ && apt-get clean
+
+{% endif %}
+
+RUN useradd --user-group marathon \
+ && chmod 755 /usr/bin/marathon
+
+CMD ["marathon", "--no-logger"]
+
+{{ include_footer }}
+
+USER marathon
diff --git a/docker/marathon/java8-runtime-headless b/docker/marathon/java8-runtime-headless
new file mode 100644
index 000000000..5c24a9339
--- /dev/null
+++ b/docker/marathon/java8-runtime-headless
@@ -0,0 +1,9 @@
+Section: misc
+Priority: optional
+Standards-Version: 3.9.2
+
+Package: java8-runtime-headless
+Version: 1:42
+Maintainer: Kolla Project (https://launchpad.net/kolla)
+Architecture: all
+Description: fake Oracle Java package to block a non-free dependency
diff --git a/docker/marathon/openjdk.list b/docker/marathon/openjdk.list
new file mode 100644
index 000000000..e1fa60ad4
--- /dev/null
+++ b/docker/marathon/openjdk.list
@@ -0,0 +1,2 @@
+# OpenJDK 8 repo
+deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main
diff --git a/docker/mesos/mesos-base/Dockerfile.j2 b/docker/mesos/mesos-base/Dockerfile.j2
new file mode 100644
index 000000000..f4dd4e450
--- /dev/null
+++ b/docker/mesos/mesos-base/Dockerfile.j2
@@ -0,0 +1,16 @@
+FROM {{ namespace }}/{{ image_prefix }}mesosphere-base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
+
+RUN yum install -y \
+ mesos \
+ && yum clean all
+
+{% elif base_distro in ['ubuntu', 'debian'] %}
+
+RUN apt-get install -y --no-install-recommends \
+ mesos \
+ && apt-get clean
+
+{% endif %}
diff --git a/docker/mesos/mesos-master/Dockerfile.j2 b/docker/mesos/mesos-master/Dockerfile.j2
new file mode 100644
index 000000000..7bad7dee1
--- /dev/null
+++ b/docker/mesos/mesos-master/Dockerfile.j2
@@ -0,0 +1,10 @@
+FROM {{ namespace }}/{{ image_prefix }}mesos-base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+RUN useradd --user-group mesos
+
+CMD ["mesos-master"]
+
+{{ include_footer }}
+
+USER mesos
diff --git a/docker/mesos/mesos-slave/Dockerfile.j2 b/docker/mesos/mesos-slave/Dockerfile.j2
new file mode 100644
index 000000000..339468d20
--- /dev/null
+++ b/docker/mesos/mesos-slave/Dockerfile.j2
@@ -0,0 +1,37 @@
+FROM {{ namespace }}/{{ image_prefix }}mesos-base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
+
+COPY docker.repo /etc/yum.repos.d/docker.repo
+
+RUN rpm --import https://yum.dockerproject.org/gpg
+
+RUN yum install -y \
+ docker-engine \
+ && yum clean all
+
+{% elif base_distro in ['ubuntu', 'debian'] %}
+
+COPY docker.list /etc/apt/sources.list.d/docker.list
+
+RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv 58118E89F3A912897C070ADBF76221572C52609D \
+ && apt-get update
+
+RUN apt-get install -y --no-install-recommends \
+ docker-engine \
+ && apt-get clean
+
+{% endif %}
+
+ENV MESOS_CONTAINERIZERS docker
+# Increase executor's timeout for pulling a Docker image to the slave
+# https://mesosphere.github.io/marathon/docs/native-docker.html
+ENV MESOS_EXECUTOR_REGISTRATION_TIMEOUT 5mins
+
+CMD ["mesos-slave"]
+
+{{ include_footer }}
+
+# This container should run as a root, because it's talking to the Docker
+# socket directly.
diff --git a/docker/mesos/mesos-slave/docker.list b/docker/mesos/mesos-slave/docker.list
new file mode 100644
index 000000000..45c9c88fb
--- /dev/null
+++ b/docker/mesos/mesos-slave/docker.list
@@ -0,0 +1,2 @@
+# Docker repo
+deb http://apt.dockerproject.org/repo ubuntu-trusty main
diff --git a/docker/mesos/mesos-slave/docker.repo b/docker/mesos/mesos-slave/docker.repo
new file mode 100644
index 000000000..a66294c93
--- /dev/null
+++ b/docker/mesos/mesos-slave/docker.repo
@@ -0,0 +1,6 @@
+[dockerrepo]
+name=Docker Repository
+baseurl=https://yum.dockerproject.org/repo/main/centos/7
+enabled=1
+gpgcheck=1
+gpgkey=https://yum.dockerproject.org/gpg
diff --git a/docker/mesosphere/mesosphere-base/Dockerfile.j2 b/docker/mesosphere/mesosphere-base/Dockerfile.j2
new file mode 100644
index 000000000..b3bb57d65
--- /dev/null
+++ b/docker/mesosphere/mesosphere-base/Dockerfile.j2
@@ -0,0 +1,17 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
+
+RUN rpm --import http://repos.mesosphere.io/el/RPM-GPG-KEY-mesosphere
+
+RUN rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
+
+{% elif base_distro in ['ubuntu', 'debian'] %}
+
+COPY mesosphere.list /etc/apt/sources.list.d/mesosphere.list
+
+RUN apt-key adv --keyserver keyserver.ubuntu.com --recv 81026D0004C44CF7EF55ADF8DF7D54CBE56151BF \
+ && apt-get update
+
+{% endif %}
diff --git a/docker/mesosphere/mesosphere-base/mesosphere.list b/docker/mesosphere/mesosphere-base/mesosphere.list
new file mode 100644
index 000000000..54b7b1d77
--- /dev/null
+++ b/docker/mesosphere/mesosphere-base/mesosphere.list
@@ -0,0 +1,2 @@
+# Mesosphere repo
+deb http://repos.mesosphere.com/ubuntu trusty main
diff --git a/docker/zookeeper/Dockerfile.j2 b/docker/zookeeper/Dockerfile.j2
new file mode 100644
index 000000000..93c8bcc4e
--- /dev/null
+++ b/docker/zookeeper/Dockerfile.j2
@@ -0,0 +1,31 @@
+FROM {{ namespace }}/{{ image_prefix }}mesosphere-base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
+
+RUN yum install -y \
+ mesosphere-zookeeper \
+ && yum clean all
+
+RUN useradd --user-group zookeeper
+
+{% elif base_distro in ['ubuntu', 'debian'] %}
+
+RUN apt-get install -y --no-install-recommends \
+ zookeeper \
+ && apt-get clean
+
+{% endif %}
+
+COPY zookeeper_sudoers /etc/sudoers.d/zookeeper_sudoers
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+RUN chmod 755 /usr/local/bin/kolla_extend_start \
+ && chmod 750 /etc/sudoers.d \
+ && chmod 440 /etc/sudoers.d/zookeeper_sudoers \
+ && usermod -a -G kolla zookeeper
+
+ENV ZOOCFGDIR=/etc/zookeeper/conf
+
+{{ include_footer }}
+
+USER zookeeper
diff --git a/docker/zookeeper/extend_start.sh b/docker/zookeeper/extend_start.sh
new file mode 100644
index 000000000..4ea18ccbb
--- /dev/null
+++ b/docker/zookeeper/extend_start.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
+ sudo chown zookeeper: /var/lib/zookeeper
+ exit 0
+fi
diff --git a/docker/zookeeper/zookeeper_sudoers b/docker/zookeeper/zookeeper_sudoers
new file mode 100644
index 000000000..e0f82de20
--- /dev/null
+++ b/docker/zookeeper/zookeeper_sudoers
@@ -0,0 +1 @@
+%kolla ALL=(root) NOPASSWD: /bin/chown zookeeper\: /var/lib/zookeeper, /usr/bin/chown zookeeper\: /var/lib/zookeeper