From 3ac75227ba2b5cef294fd2490b4251f72dbc4992 Mon Sep 17 00:00:00 2001 From: Vincent Llorens Date: Fri, 3 Jun 2016 16:46:12 +0200 Subject: [PATCH] add docker packaging for CentOS 7 & Ubuntu 14.04 Change-Id: Ibfbb147d579d345f91dc5fc8b68e4c9c1b740d36 --- packaging/README.md | 17 +++++++++++ packaging/docker/centos7/Dockerfile | 13 ++++++++ packaging/docker/centos7/build.sh | 37 ++++++++++++++++++++++ packaging/docker/ubuntu-14.04/Dockerfile | 17 +++++++++++ packaging/docker/ubuntu-14.04/build.sh | 39 ++++++++++++++++++++++++ 5 files changed, 123 insertions(+) create mode 100644 packaging/README.md create mode 100644 packaging/docker/centos7/Dockerfile create mode 100644 packaging/docker/centos7/build.sh create mode 100644 packaging/docker/ubuntu-14.04/Dockerfile create mode 100644 packaging/docker/ubuntu-14.04/build.sh diff --git a/packaging/README.md b/packaging/README.md new file mode 100644 index 0000000..31f2305 --- /dev/null +++ b/packaging/README.md @@ -0,0 +1,17 @@ +# Packaging synergy-scheduler-manager + +## Using docker + +1. build the image + + ```shell + cd packaging/docker/{ubuntu-14.04,centos7} + docker build -t scheduler-builder-{centos7,ubuntu-14.04} . + ``` + +2. run the image + + ```shell + Docker run -i -v /path/to/synergy-scheduler-manager:/tmp/python-synergy-scheduler-manager scheduler-builder-{centos7,ubuntu-14.04} + ``` + the deb/rpm will be output in `path/to/synergy-scheduler-manager/build` diff --git a/packaging/docker/centos7/Dockerfile b/packaging/docker/centos7/Dockerfile new file mode 100644 index 0000000..62bf2e4 --- /dev/null +++ b/packaging/docker/centos7/Dockerfile @@ -0,0 +1,13 @@ +FROM centos:7 +MAINTAINER Vincent Llorens +RUN yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-liberty/rdo-release-liberty-3.noarch.rpm \ + rpm-build \ + python-devel \ + python-setuptools \ + && yum update -y +RUN mkdir /tmp/python-synergy-scheduler-manager +RUN useradd -m -p pkger pkger +USER pkger +COPY build.sh /home/pkger/ +WORKDIR /home/pkger/ +CMD bash build.sh diff --git a/packaging/docker/centos7/build.sh b/packaging/docker/centos7/build.sh new file mode 100644 index 0000000..de6ddd3 --- /dev/null +++ b/packaging/docker/centos7/build.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +set -e -x + +RPMBUILD=/home/pkger/rpmbuild +PKG_DIR=/tmp/python-synergy-scheduler-manager + + +function get_version() { + local file=$PKG_DIR/setup.cfg + export PKG_VERSION=$(grep -e "version = " $file | sed -r "s/version = ()/\1/") +} + +function setup() { + mkdir -p /home/pkger/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} + cd $RPMBUILD/SOURCES/ + cp -r $PKG_DIR python-synergy-scheduler-manager-$PKG_VERSION + rm -r python-synergy-scheduler-manager-$PKG_VERSION/{.tox,.testrepository,build,dist} || true + tar cjf python-synergy-scheduler-manager-${PKG_VERSION}.tar.bz2 python-synergy-scheduler-manager-$PKG_VERSION + cp $PKG_DIR/packaging/rpm/python-synergy-scheduler-manager.spec $RPMBUILD/SPECS/python-synergy-scheduler-manager.spec +} + +function build() { + cd $RPMBUILD/SPECS + export PBR_VERSION=$PKG_VERSION + rpmbuild -ba python-synergy-scheduler-manager.spec + mkdir -p $PKG_DIR/build/ + cp -i $RPMBUILD/RPMS/noarch/python-synergy-scheduler-manager-*.rpm $PKG_DIR/build/ +} + +function clean() { + rm -rf $RPMBUILD +} + +clean || true +get_version +setup +build diff --git a/packaging/docker/ubuntu-14.04/Dockerfile b/packaging/docker/ubuntu-14.04/Dockerfile new file mode 100644 index 0000000..84d1008 --- /dev/null +++ b/packaging/docker/ubuntu-14.04/Dockerfile @@ -0,0 +1,17 @@ +FROM ubuntu:14.04 +MAINTAINER Vincent Llorens +RUN apt-get update \ + && apt-get install -y build-essential \ + debhelper \ + devscripts \ + dh-systemd \ + git-core \ + python-all \ + python-pbr \ + python-setuptools +RUN mkdir /tmp/python-synergy-scheduler-manager +RUN useradd -m -p pkger pkger +USER pkger +COPY build.sh /home/pkger/build.sh +WORKDIR /home/pkger +CMD bash build.sh diff --git a/packaging/docker/ubuntu-14.04/build.sh b/packaging/docker/ubuntu-14.04/build.sh new file mode 100644 index 0000000..e3b499f --- /dev/null +++ b/packaging/docker/ubuntu-14.04/build.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -e -x + +PKG_DIR=/tmp/python-synergy-scheduler-manager + + +function copy_source() { + cd /home/pkger + cp -r $PKG_DIR python-synergy-scheduler-manager + rm -r python-synergy-scheduler-manager/{.tox,.testrepository,build,dist} || true +} + +function get_version() { + local file=/home/pkger/python-synergy-scheduler-manager/setup.cfg + export PKG_VERSION=$(grep -e "version = " $file | sed -r "s/version = ()/\1/") +} + +function setup() { + cd /home/pkger + tar cjf python-synergy-scheduler-manager_${PKG_VERSION}.orig.tar.bz2 python-synergy-scheduler-manager + mv python-synergy-scheduler-manager/packaging/debian python-synergy-scheduler-manager/debian +} + +function build() { + cd /home/pkger/python-synergy-scheduler-manager + debuild -us -uc + mkdir -p $PKG_DIR/build + cp -i /home/pkger/*.deb $PKG_DIR/build +} + +function clean() { + rm -r /home/pkger/python-synergy-scheduler-manager{,_${PKG_VERSION}.orig.tar.bz2} +} + +clean || true # no cleaning to do on a fresh install +copy_source +get_version +setup +build