DataPower firmware is getting bigger and fatter, the 7.6 firmware requires at least 8GB vMEM (virtual memory) to successfully start the DataPower virtual device (Linux or VMware) in order to avoid the device reload due to low memory throttling. For those who have a laptop with 4GB RAM or less, either you add more memory or buy a new laptop. Luckily, there is a 3rd solution, which is to migrate to DataPower Docker.
Installation:
- install ubuntu 14.0.4
- install open vm tools
sudo apt-get install open-vm-tools-lts-trusty - install docker
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates
sudo apt-key adv \
–keyserver hkp://ha.pool.sks-keyservers.net:80 \
–recv-keys 58118E89F3A912897C070ADBF76221572C52609D
echo “deb https://apt.dockerproject.org/repo ubuntu-trusty main” | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-cache policy docker-engine
sudo apt-get update
sudo apt-get install docker-engine
sudo service docker start
sudo docker run hello-world - install datapower
sudo docker pull ibmcom/datapower
sudo docker run -it \
-v $PWD/config:/drouter/config \
-v $PWD/local:/drouter/local \
-e DATAPOWER_ACCEPT_LICENSE=true \
-e DATAPOWER_INTERACTIVE=true \
-e DATAPOWER_WORKER_THREADS=4 \
-p 9090:9090 \
-p 9022:9022 \
-p 5554:5554 \
-p 8000-8010:8000-8010 \
–name idg \
ibmcom/datapower
Note:
Because the docker container process owner is not root, you won’t be able to start port 22, use 9022 instead.
Ports: Expose ports on the host system using (-p nn:nn) or let Docker choose the ports (-p nn). If you’re running multiple containers on the same host system, you should let Docker choose the ports for you.
/drouter/config is the location where DataPower will persist the configuration using an easy to read and editable format.
/drouter/local is used to store source files such as JavaScript (GatewayScript), XSLT, key, certificates and so on.
DATAPOWER_INTERACTIVE=true prompts for login to the DataPower CLI on stdin and must be used with -it. This intermixes log output, disable DATAPOWER_LOG_STDOUT if not desired.