deon created page: docker

Deon George 2017-11-26 12:43:36 +00:00
parent cbb8d5c1fa
commit 3fc45972ad

61
docker.md Normal file

@ -0,0 +1,61 @@
# Using TSMPIPE as a Docker Microservice.
TSMPIPE works really well as a Docker microservice. While there are probably many use case scenarios for this, the simplest would be to backup all your Database Microservices (like MySQL).
## To build TSMPIPE for Docker
1. Checkout TSMPIPE and build it.
Download and install the TSM (SP) Clients from `ftp://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/client/`.
Checkout and make the `tsmpipe` binary
`make -f Makefile.linux64`
If you built it, you should have a `tsmpipe` binary after the compile completes.
2. Create this Docker file
```Dockerfile
# NAME leenooks/tsmpipe
# VERSION 8.1.0
#
FROM centos:7
#RUN curl -SL ftp://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/client/v8r1/Linux/LinuxX86/BA/v812/8.1.2.0-TIV-TSMBAC-LinuxX86.tar | tar -C /tmp/ -xf - gskcrypt64-8.0.50.78.linux.x86_64.rpm gskssl64-8.0.50.78.linux.x86_64.rpm TIVsm-API64.x86_64.rpm && yum install -y /tmp/*rpm && rm -f /tmp/*rpm
RUN curl -SL http://{YOUR WEB SERVER}/CentOS/7/8.1.2.0-TIV-TSMBAC-LinuxX86.tar | tar -C /tmp/ -xf - gskcrypt64-8.0.50.78.linux.x86_64.rpm gskssl64-8.0.50.78.linux.x86_64.rpm TIVsm-API64.x86_64.rpm && yum install -y /tmp/*rpm && rm -f /tmp/*rpm
RUN ln -s /tsm/dsm.sys /opt/tivoli/tsm/client/api/bin64/ \
&& ln -s /tsm/dsm.opt /opt/tivoli/tsm/client/api/bin64/ \
&& ln -s /tsm/dsmcert.kdb /opt/tivoli/tsm/client/api/bin64/ \
&& ln -s /tsm/dsmcert.sth /opt/tivoli/tsm/client/api/bin64/
#
COPY tsmpipe/tsmpipe /usr/bin
#
VOLUME [ "/tsm" ]
#
# Starting
ENTRYPOINT [ "/usr/bin/tsmpipe" ]
```
**NOTE**: If you can, place your downloaded TSM (SP) Client tar file (from step 1) on a local web server - it'll save you downloading it a second time. If you dont have a local webserver, uncomment the first line `RUN curl ...` line, and comment out the second one above.
3. Build your Docker image
`docker build -t leenooks/tsmpipe:8.1.0 .`
4. Create a directory to hold your `dsm.opt`, `dsm.sys` and if required, your SSL configuration. This will need to be mapped to the container when it starts using Docker's `-v` option. EG: `-v /tmp/tsmpipe:/tsm`
5. Check connectivity to your TSM (SP) Server
`docker run --rm=true --hostname={NODE NAME} -iv /tmp/tsmpipe:/tsm leenooks/tsmpipe:8.1.0 -i`
**NOTE**: You may need to set your password, use the `-p` switch.
6. If it all works OK, you should see a session dump starting with:
```
Application Version:
TSMPIPE Version: 1.6.6
TSMPIPE API Version: 8.1.0.0
TSM Library: 8.1.2.0
...
```
7. You can now STDOUT pipe from one container to another.
For example:
```
docker exec -it 2fbdec51b6c0 mysqldump --all-databases -FlK --skip-extended-insert --skip-dump-date | docker run --rm=true --hostname=test -iv /tmp/tsmpipe:/tsm leenooks/tsmpipe:8.1.0 -Bcs /test/test -f test -l 30000 -m md5
```