cloudstack/tools/docker/README.md

102 lines
2.8 KiB
Markdown

# Docker Files for Apache CloudStack
Dockerfiles used to build CloudStack images are available on Docker hub.
## Using images from docker-hub
### CloudStack Simulator
CloudStack Simulator is an all in one CloudStack Build including the simulator that mimic Hypervisor. This is useful to test CloudStack API behavior without having to deploy real hypervisor nodes. CloudStack Simulator is used for tests and CI.
```
docker pull cloudstack/simulator
docker run --name simulator -p 8080:8080 -d cloudstack/simulator
```
### CloudStack Management-server
```
docker pull mysql:5.5
docker pull cloudstack/management_centos6
docker run --name cloudstack-mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:5.5
docker run -ti --name cloudstack --link cloudstack-mysql:mysql -d -p 8080:8080 -p 8250:8250 cloudstack/management_centos6
```
### Marvin
Use marvin to deploy or test your CloudStack environment.
Use Marvin with cloudstack connection thru the API port (8096)
```
docker pull cloudstack/marvin
docker run -ti --rm --name marvin --link simulator:8096 cloudstack/marvin
```
Deploy Cloud using marvin:
```
docker run -ti --rm --link simulator:8096 cloudstack/marvin python /marvin/marvin/deployDataCenter.py -i /marvin/dev/advanced.cfg
```
Perform Smoke tests against CloudStack Simulator containter:
```
docker run -ti --rm --link simulator:8096 \
nosetests-2.7 -v --with-marvin \
--marvin-config=dev/advanced.cfg \
--with-xunit \
--xunit-file=xunit.xml \
-a tags=advanced,required_hardware=false \
--zone=Sandbox-simulator \
--hypervisor=simulator \
-w integration/smoke
```
# How to build images
Image provided by CloudStack are automatically built by Jenkins performing following tasks:
### CentOS 6
CentOS 6 image use RPM's from jenkins.buildacloud.org
tag:latest = master branch
1. build the base image
```
docker build -f Dockerfile.centos6 -t cloudstack/management_centos6 .
```
2. on jenkins, database and systemvm.iso are pre-deployed. the inital start require privileged container to
mount systemvm.iso and copy ssh_rsa.pub into it.
```
docker run --name cloudstack-mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:5.5
docker run --privileged --link cloudstack-mysql:mysql -d --name cloudstack cloudstack/management_centos6
sleep 300
docker exec cloudstack /etc/init.d/cloudstack-management stop
docker stop cloudstack
docker commit -m "init system.iso" -a "Apache CloudStack" cloudstack cloudstack/management_centos6
```
### Marvin
Build Marvin container usable to deploy cloud in the CloudStack management server container.
1. to build the image
```
docker build -f Dockerfile.marvin -t cloudstack/marvin ../..
```
### Simulator
Build CloudStack with Simulator. This image is an all in one, including the database. Built from source using maven.
```
docker build -f Dockerfile -t cloudstack/simulator ../..
```