set -e
CACHE=""
+FLAVOR="default"
function run {
printf "%s\n" "$*"
}
function main {
- eval set -- $(getopt --name "$0" --options 'h' --longoptions 'help,no-cache' -- "$@")
+ eval set -- $(getopt --name "$0" --options 'h' --longoptions 'help,no-cache,flavor:' -- "$@")
while [ "$#" -gt 0 ]; do
case "$1" in
CACHE="--no-cache"
shift
;;
+ --flavor)
+ FLAVOR=$2
+ shift 2
+ ;;
--)
shift
break
T=$(mktemp -d)
pushd "$T"
+ repo_url="https://shaman.ceph.com/api/repos/ceph/${branch}/${sha}/${env/://}/flavors/${FLAVOR}/repo"
if grep ubuntu <<<"$env" > /dev/null 2>&1; then
# Docker makes it impossible to access anything outside the CWD : /
cp -- /ceph/shaman/cephdev.asc .
apt-get install --yes --quiet screen gdb software-properties-common apt-transport-https curl
COPY cephdev.asc cephdev.asc
RUN apt-key add cephdev.asc && \
- curl -L https://shaman.ceph.com/api/repos/ceph/${branch}/${sha}/${env/://}/repo | tee /etc/apt/sources.list.d/ceph_dev.list && \
+ curl -L $repo_url | tee /etc/apt/sources.list.d/ceph_dev.list && \
apt-get update --yes && \
DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get --assume-yes -q --no-install-recommends install -o Dpkg::Options::=--force-confnew --allow-unauthenticated ceph ceph-osd-dbg ceph-mds-dbg ceph-mgr-dbg ceph-mon-dbg ceph-common-dbg ceph-fuse-dbg ceph-test-dbg radosgw-dbg python3-cephfs python3-rados
EOF
ceph_debuginfo="ceph-base-debuginfo"
;;
esac
- IFS=":" read -r distro distro_release <<< "$env"
time run docker build $CACHE --tag "$tag" - <<EOF
FROM ${env}
WORKDIR /root
RUN yum update -y && \
yum install -y tmux epel-release wget psmisc ca-certificates gdb
-RUN wget -O /etc/yum.repos.d/ceph-dev.repo https://shaman.ceph.com/api/repos/ceph/${branch}/${sha}/${distro}/${distro_release}/repo && \
+RUN wget -O /etc/yum.repos.d/ceph-dev.repo $repo_url && \
yum clean all && \
yum upgrade -y && \
yum install -y ceph ${ceph_debuginfo} ceph-fuse ${python_bindings}