docker使用volplugin对接存储-(2)编译volplugin插件
2017-10-12
Tip: 此文是"docker使用volplugin对接存储"的第2节,你可以在这里开始阅读整个系列。
在docker容器中编译
docker环境的安装本文不再描述,不会的同学可以参考这里
1.首先下载centos镜像,
[root@dev25 ~]# docker pull centos
[root@dev25 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest 196e0ce0c9fb 3 weeks ago 196.6 MB
2.启动一个centos容器
[root@dev25 ~]# docker run -d -ti docker.io/centos
[root@dev25 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
70ec8e9120d7 docker.io/centos "/bin/bash" 6 seconds ago Up 4 seconds hopeful_pare
# 进入容器
[root@dev25 ~]# docker exec -it 70ec8e9120d7 /bin/bash
[root@70ec8e9120d7 /]#
3.基本开发环境准备
# 安装一些开发工具
[root@70ec8e9120d7 /]# yum install git make golang git -y
# 配置go的环境变量
[root@70ec8e9120d7 /]# mkdir /opt/golang
# 设置环境变量
[root@70ec8e9120d7 /]# export GOPATH=/opt/golang
[root@70ec8e9120d7 /]# export PATH=$PATH:$GOPATH/bin
4.下载volplugin代码
[root@70ec8e9120d7 /]# mkdir -p /opt/golang/src/github.com/contiv/volplugin
[root@70ec8e9120d7 /]# git clone https://github.com/contiv-experimental/volplugin.git /opt/golang/src/github.com/contiv/volplugin
5.编译
[root@70ec8e9120d7 /]# cd /opt/golang/src/github.com/contiv/volplugin
[root@70ec8e9120d7 volplugin]# make run-build
# 编译成功后,在go的默认bin目录产生所有的bin文件
[root@70ec8e9120d7 /]# ll /opt/golang/bin/
total 76532
-rwxr-xr-x. 1 root root 16278312 Oct 12 15:05 apiserver
-rwxr-xr-x. 1 root root 15590808 Oct 12 15:05 volcli
-rwxr-xr-x. 1 root root 13827605 Oct 12 15:04 volmigrate
-rwxr-xr-x. 1 root root 17147648 Oct 12 15:05 volplugin
-rwxr-xr-x. 1 root root 15503360 Oct 12 15:05 volsupervisor
# 由于volplugin的组件需要用到ceph和rbd命令,因此需要安装ceph客户端
[root@70ec8e9120d7 /]# yum install ceph-common -y
# 由于默认的centos镜像没有安装mkfs.ext4工具,因此需要安装对应的rpm包
[root@70ec8e9120d7 /]# yum install e2fsprogs -y
总结
到此为止,包含volplugin插件的一个容器已经创建好了,下一节会基于该容器产创建一个模板镜像