Docker deployment

Docker容器部署的大致步骤如下:

一、在VM层的操作

镜像编译工作

在镜像项目的顶层目录下运行:
mvn versions:resolve-ranges
这一步用于获取base镜像的版本号
下一步进行镜像的编译:
mvn clean install

编译完成后,可使用docker images命令来查看所编译镜像是否存在

传输镜像

通过下面命令将编译好的镜像传输至DIND:
docker save docker.example.com/jira:0.0.1-SNAPSHOT | ssh -C root@dind1.docker.example.com "docker load"

vpnporxy 部署纪要

解决fabfile中hosts变量的获取问题

test_depoly中使用_find_hosts_by_cluster_and_container(cluster,container)来获取hosts,但是传进来的这两个变量都有可能是列表,所以要解决列表问题,最后还要解决hosts列表中的元素为列表的情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if type(containers) == str:
hosts = map(lambda cluster: _find_hosts_by_cluster_and_container(cluster, containers), clusters)
if type(containers) == list:
hosts = []
for containers in containerss:
host = map(lambda cluster: _find_hosts_by_cluster_and_container(cluster, container), clusters)
hosts.extend(host)
lst = []
for host in hosts:
if type(host) == list:
lst.extend(host)
else:
lst.append(host)
hosts = lst
print hosts

if len(hosts) == 0:
env.hosts = None
else:
env.hosts = hosts