Skip to content

Instantly share code, notes, and snippets.

@kazuhisya
Last active December 6, 2016 13:21
Show Gist options
  • Save kazuhisya/42f6c8dfc1410f3b6c75dae5d9a79c8a to your computer and use it in GitHub Desktop.
Save kazuhisya/42f6c8dfc1410f3b6c75dae5d9a79c8a to your computer and use it in GitHub Desktop.
FROM centos:6
RUN yum install -y epel-release && \
yum groupinstall -y "Base" "Development Tools" && \
yum install -y --nogpgcheck http://ymu.dl.osdn.jp/linux-ha/66141/pacemaker-repo-1.1.14-1.1.el6.x86_64.rpm && \
yum install -y corosync corosynclib corosynclib-devel && \
yum install -y userspace-rcu userspace-rcu-devel yasm yasm-devel && \
yum install -y fuse fuse-devel && \
yum install -y rpm-build rpmdevtools rpmlint && \
curl -L -o /etc/yum.repos.d/bigtop.repo http://www.apache.org/dist/bigtop/bigtop-1.1.0/repos/centos6/bigtop.repo && \
yum install -y --nogpgcheck zookeeper-native && \
yum clean all
COPY ./sheepdog /root/sheepdog
WORKDIR /root/sheepdog
RUN ./autogen.sh && \
./configure --enable-zookeeper && \
LANG=C make -j8 rpm
FROM centos:7
RUN yum install -y epel-release && \
yum groupinstall -y "Base" "Development Tools" && \
yum install -y corosync corosynclib corosynclib-devel && \
yum install -y userspace-rcu userspace-rcu-devel yasm yasm-devel && \
yum install -y fuse fuse-devel && \
yum install -y rpm-build rpmdevtools rpmlint && \
curl -L -o /etc/yum.repos.d/bigtop.repo http://www.apache.org/dist/bigtop/bigtop-1.1.0/repos/centos7/bigtop.repo && \
yum install -y --nogpgcheck zookeeper-native && \
yum clean all
COPY ./sheepdog /root/sheepdog
WORKDIR /root/sheepdog
RUN ./autogen.sh && \
./configure --enable-zookeeper && \
LANG=C make -j8 rpm

Befor

https://github.com/sheepdog/sheepdog/commit/df7d08f1513f79be577311759442a3ddf24e20aa

$ git clone https://github.com/sheepdog/sheepdog
$ git -C ./sheepdog/ submodule init
$ git -C ./sheepdog/ submodule update
$ docker build -t local/sheep:el7 -f el7.Dockerfile .
$ docker build -t local/sheep:el6 -f el6.Dockerfile .

el6: faild

~~ snip ~~
Processing files: sheepdog-1.0_67_gdf7d08f_dirty-1.el6.x86_64
error: File not found: /root/rpmbuild/BUILDROOT/sheepdog-1.0_67_gdf7d08f_dirty-1.el6.x86_64/usr/lib/systemd/system/sheepdog.service
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.F7wHor
+ umask 022
+ cd /root/sheepdog
+ cd sheepdog-1.0_67_gdf7d08f_dirty
+ DOCDIR=/root/rpmbuild/BUILDROOT/sheepdog-1.0_67_gdf7d08f_dirty-1.el6.x86_64/usr/share/doc/sheepdog-1.0_67_gdf7d08f_dirty
+ export DOCDIR
+ rm -rf /root/rpmbuild/BUILDROOT/sheepdog-1.0_67_gdf7d08f_dirty-1.el6.x86_64/usr/share/doc/sheepdog-1.0_67_gdf7d08f_dirty
+ /bin/mkdir -p /root/rpmbuild/BUILDROOT/sheepdog-1.0_67_gdf7d08f_dirty-1.el6.x86_64/usr/share/doc/sheepdog-1.0_67_gdf7d08f_dirty
+ cp -pr COPYING README INSTALL /root/rpmbuild/BUILDROOT/sheepdog-1.0_67_gdf7d08f_dirty-1.el6.x86_64/usr/share/doc/sheepdog-1.0_67_gdf7d08f_dirty
+ exit 0


RPM build errors:
    File not found: /root/rpmbuild/BUILDROOT/sheepdog-1.0_67_gdf7d08f_dirty-1.el6.x86_64/usr/lib/systemd/system/sheepdog.service
make: *** [rpm] Error 1
The command '/bin/sh -c ./autogen.sh &&     ./configure --enable-zookeeper &&     LANG=C make -j8 rpm' returned a non-zero code: 2

el7: Success

~~ snip ~~
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.vRRrd8
+ umask 022
+ cd /root/sheepdog
+ cd sheepdog-1.0_67_gdf7d08f
+ rm -rf /root/rpmbuild/BUILDROOT/sheepdog-1.0_67_gdf7d08f-1.el7.centos.x86_64
+ exit 0
 ---> 4828145d81e6
Removing intermediate container 8be17d20c71c
Successfully built 4828145d81e6

After

https://github.com/kazuhisya/sheepdog/commit/5045959e1d84986ad38283f5edb54bdbb9d5cb2f

$ git clone -b rpm-for-sysv-and-systemd https://github.com/kazuhisya/sheepdog
$ git -C ./sheepdog/ submodule init
$ git -C ./sheepdog/ submodule update
$ docker build -t local/sheep:el7-fix -f el7.Dockerfile .
$ docker build -t local/sheep:el6-fix -f el6.Dockerfile .

el6: Success

Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.xXYRSo
+ umask 022
+ cd /root/sheepdog
+ cd sheepdog-1.0_68_g5045959_dirty
+ rm -rf /root/rpmbuild/BUILDROOT/sheepdog-1.0_68_g5045959_dirty-1.el6.x86_64
+ exit 0
 ---> cf75956cc29a
Removing intermediate container f0731870395b
Successfully built cf75956cc29a

$ docker run -it local/sheep:el6-fix bash
[root@b54de36f5718 sheepdog]# ls -la ./x86_64/
total 1576
drwxr-xr-x.  2 root root     126 Dec  6 13:11 .
drwxr-xr-x. 21 root root    4096 Dec  6 13:11 ..
-rw-r--r--.  1 root root  284384 Dec  6 13:11 sheepdog-1.0_68_g5045959_dirty-1.el6.x86_64.rpm
-rw-r--r--.  1 root root 1321432 Dec  6 13:11 sheepdog-debuginfo-1.0_68_g5045959_dirty-1.el6.x86_64.rpm
[root@b54de36f5718 sheepdog]# rpm -qpl ./x86_64/sheepdog-1.0_68_g5045959_dirty-1.el6.x86_64.rpm 
/etc/bash_completion.d/dog
/etc/rc.d/init.d/sheepdog
/usr/bin/dog
/usr/include/sheepdog
/usr/include/sheepdog/internal.h
/usr/include/sheepdog/list.h
/usr/include/sheepdog/sheepdog.h
/usr/include/sheepdog/sheepdog_proto.h
/usr/include/sheepdog/util.h
/usr/lib64/libsheepdog.la
/usr/lib64/libsheepdog.so
/usr/sbin/sheep
/usr/sbin/sheepfs
/usr/sbin/shepherd
/usr/sbin/zk_control
/usr/share/doc/sheepdog-1.0_68_g5045959_dirty
/usr/share/doc/sheepdog-1.0_68_g5045959_dirty/COPYING
/usr/share/doc/sheepdog-1.0_68_g5045959_dirty/INSTALL
/usr/share/doc/sheepdog-1.0_68_g5045959_dirty/README
/usr/share/man/man8/dog.8.gz
/usr/share/man/man8/sheep.8.gz
/usr/share/man/man8/sheepfs.8.gz
/var/lib/sheepdog

el7: Success

~~ snip ~~
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.itGOQo
+ umask 022
+ cd /root/sheepdog
+ cd sheepdog-1.0_68_g5045959
+ rm -rf /root/rpmbuild/BUILDROOT/sheepdog-1.0_68_g5045959-1.el7.centos.x86_64
+ exit 0
 ---> e92bec47bfc9
Removing intermediate container 0732e16d0634
Successfully built e92bec47bfc9
$ docker run -it local/sheep:el7-fix bash
[root@e1c57930651b sheepdog]# ls -la ./x86_64/
total 1460
drwxr-xr-x.  2 root root     128 Dec  6 13:10 .
drwxr-xr-x. 21 root root    4096 Dec  6 13:10 ..
-rw-r--r--.  1 root root  305760 Dec  6 13:10 sheepdog-1.0_68_g5045959-1.el7.centos.x86_64.rpm
-rw-r--r--.  1 root root 1181576 Dec  6 13:10 sheepdog-debuginfo-1.0_68_g5045959-1.el7.centos.x86_64.rpm
[root@e1c57930651b sheepdog]# rpm -qpl ./x86_64/sheepdog-1.0_68_g5045959-1.el7.centos.x86_64.rpm 
/etc/bash_completion.d/dog
/usr/bin/dog
/usr/include/sheepdog
/usr/include/sheepdog/internal.h
/usr/include/sheepdog/list.h
/usr/include/sheepdog/sheepdog.h
/usr/include/sheepdog/sheepdog_proto.h
/usr/include/sheepdog/util.h
/usr/lib/systemd/system/sheepdog.service
/usr/lib64/libsheepdog.la
/usr/lib64/libsheepdog.so
/usr/sbin/sheep
/usr/sbin/sheepfs
/usr/sbin/shepherd
/usr/sbin/zk_control
/usr/share/doc/sheepdog-1.0_68_g5045959
/usr/share/doc/sheepdog-1.0_68_g5045959/COPYING
/usr/share/doc/sheepdog-1.0_68_g5045959/INSTALL
/usr/share/doc/sheepdog-1.0_68_g5045959/README
/usr/share/man/man8/dog.8.gz
/usr/share/man/man8/sheep.8.gz
/usr/share/man/man8/sheepfs.8.gz
/var/lib/sheepdog
[root@e1c57930651b sheepdog]#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment