blob: 1211ce90b41888f384a8132bbc0883903e68bfb4 [file] [log] [blame]
ARG BASE_IMAGE_NAME
FROM $BASE_IMAGE_NAME
RUN yum install -y java-1.8.0-openjdk iptables iproute
# Prepare systemd environment.
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*; \
rm -f /etc/systemd/system/*.wants/*; \
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*; \
rm -f /lib/systemd/system/anaconda.target.wants/*; \
ln -vf /lib/systemd/system/multi-user.target /lib/systemd/system/default.target
RUN for service in\
console-getty.service\
dbus.service\
dbus.socket\
dev-hugepages.mount\
getty.target\
sys-fs-fuse-connections.mount\
systemd-logind.service\
systemd-remount-fs.service\
systemd-vconsole-setup.service\
; do systemctl mask $service; done
# Prepare Docker environment.
ARG DOCKER_URL=https://download.docker.com/linux/static/stable/x86_64/docker-17.12.0-ce.tgz
RUN mkdir -p /etc/docker && \
touch /etc/docker/env && \
curl -s $DOCKER_URL -o /docker.tgz && \
tar -xzvf /docker.tgz -C /usr/local/bin --strip 1 && \
rm -f /docker.tgz
RUN groupadd docker
COPY docker.service /usr/lib/systemd/system/docker.service
COPY docker_env.sh /etc/docker/env.sh
COPY docker_daemon.json /etc/docker/daemon.json
# Prepare Mesos environment.
RUN chmod +x /usr/bin/mesos-init-wrapper && \
rm -f /etc/mesos-master/work_dir && \
rm -f /etc/mesos-slave/work_dir && \
mkdir -p /etc/mesos/resource_providers && \
mkdir -p /etc/mesos/cni && \
mkdir -p /usr/libexec/mesos/cni
COPY mesos/master_environment /etc/default/mesos-master
COPY mesos/agent_environment /etc/default/mesos-agent
COPY mesos/modules /etc/mesos/modules
# Prepare CNI environment.
ARG CNI_PLUGINS_URL=https://github.com/containernetworking/plugins/releases/download/v0.7.4/cni-plugins-amd64-v0.7.4.tgz
RUN curl -sL $CNI_PLUGINS_URL -o /cni-plugins.tgz && \
tar xzvf /cni-plugins.tgz -C /usr/libexec/mesos/cni && \
rm -f /cni-plugins.tgz
COPY mesos/ucr-default-bridge.json /etc/mesos/cni/
# Prepare Marathon environment.
ARG MARATHON_URL=https://downloads.mesosphere.com/marathon/releases/1.6.322/marathon-1.6.322-2bf46b341.tgz
ARG MARATHON_INSTALL_DIR=/usr/local/marathon
RUN mkdir -p $MARATHON_INSTALL_DIR && \
curl -s $MARATHON_URL -o /marathon.tgz && \
tar -xzvf /marathon.tgz -C $MARATHON_INSTALL_DIR --strip 1 && \
rm -f /marathon.tgz
COPY marathon.sh $MARATHON_INSTALL_DIR/bin/
COPY marathon.service /usr/lib/systemd/system/marathon.service
RUN systemctl enable docker mesos-slave mesos-master marathon
# Prepare entrypoint.
COPY entrypoint.sh /
CMD ["/entrypoint.sh"]
STOPSIGNAL SIGRTMIN+3