Skip to content

Instantly share code, notes, and snippets.

@sgnn7
Last active December 11, 2018 10:09
Show Gist options
  • Save sgnn7/bbff6d895d9dd420cff6aa976cb920bf to your computer and use it in GitHub Desktop.
Save sgnn7/bbff6d895d9dd420cff6aa976cb920bf to your computer and use it in GitHub Desktop.
Mesos deb build on Ubuntu 18.04 for Ubuntu 18.04 deployment
FROM ubuntu:18.04
LABEL version="0.1"
ENV OUTPUT_DIR="/opt/artifacts"
RUN mkdir $OUTPUT_DIR
VOLUME $OUTPUT_DIR
# Packaging requirements
# https://github.com/endlessm/mesos-deb-packaging/blob/master/README.md
RUN apt-get update && apt-get -y install git \
build-essential \
ruby \
ruby-dev
RUN gem install fpm
# Mesos build requirements
# XXX: JDK may leave /etc/ssl/certs/java/cacerts empty so we install JDK8 as
# well so that our cacerts store isn't empty.
# https://bugs.java.com/view_bug.do?bug_id=8189131
# https://bugs.openjdk.java.net/browse/JDK-8193890
RUN apt-get -y install git \
autoconf \
build-essential \
libapr1-dev \
libcurl4-openssl-dev \
libtool \
libsasl2-dev \
libsvn-dev \
maven \
openjdk-11-jdk \
openjdk-8-jdk \
python-dev \
zlib1g-dev
ENV MAKEFLAGS=-j6 \
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
# XXX: Upstream packaging does not have our Ubuntu 18.04 patches yet
# https://github.com/mesosphere/mesos-deb-packaging/pull/113
# XXX: Upstream Mesos does not have our JDK9+ patches yet (nor our logging framework patches)
# https://github.com/endlessm/mesos/tree/master
CMD git clone https://github.com/endlessm/mesos-deb-packaging.git \
--branch ubuntu1804 \
--single-branch && \
cd mesos-deb-packaging && \
./build_mesos --rename --repo git://github.com/endlessm/mesos.git && \
cp mesos_*.deb $OUTPUT_DIR
#!/bin/bash -e
trap popd EXIT
pushd "$(dirname "$0")"
rm -rf dist
mkdir -m 1777 dist
sudo docker build -t mesos-builder-1804 .
sudo docker run -it -v $(pwd)/dist:/opt/artifacts --rm=true mesos-builder-1804
mesos_deb=$(ls dist/)
cp dist/$mesos_deb .
echo "Package built: $mesos_deb"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment