---
header-img: img/header_img/server.jpg
date: 2018-03-07 09:50:12
description: Ready to run images
related:
- { page: "firstrun", title: "Initial Container Setup" }
- { page: "normalrun", title: "Normal Run of Container" }
---
# Spectrum Protect Server <span class="badge btn-danger" style="background-color: #ac2925">Updated to 8.1.8</span>

```Dockerfile Server Dockerfile
# NAME deon/spdocker/server
# VERSION 8.1.8
# BUILD docker build -t="deon/spdocker/server:8.1.8" .

# Since SP is supported on RHEL and its not available in docker, we'll use CentOS.
FROM centos:7

# OS Installation Prerequisites
RUN yum -y install http://yum.leenooks.net/CentOS/7/base/redhat-release-7-6.el7.centos.12.2.x86_64.rpm libaio ksh compat-libstdc++-33 numactl && yum clean all && rm -rf /var/tmp/*

# Installation
COPY install.xml install-fp.xml /tmp/

# Download http://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/server/v8r1/Linux/8.1.8.000/x86_64/8.1.8.000-IBM-SPSRV-Linuxx86_64.bin to a local server (otherwise it will be slow).
RUN SOURCE_URL=http://YOUR_SITE_URL_HERE && \
 mkdir -p /tmp/build && cd /tmp/build && \
 curl -SL ${SOURCE_URL}/8.1.8.000-IBM-SPSRV-Linuxx86_64.bin > tsm && chmod +x tsm && ./tsm && rm -f tsm && \
 ./install.sh -s -input /tmp/install-fp.xml -acceptLicense && \
 rm -rf /tmp/build /tmp/install*xml

# Dont forget to change the user in the init file too
ENV USER=tsm USERDIR=/tsm USERID=201 GROUPID=201

# Setup User
RUN groupadd servers -g ${GROUPID} && useradd -d ${USERDIR} -u ${USERID} -g ${GROUPID} -s /bin/bash ${USER}

# Server options file in place
COPY dsmserv.opt tsmdbmgr.opt ${USERDIR}/
COPY dsm.sys /opt/tivoli/tsm/server/bin/dbbkapi/ 
RUN chmod a+r /opt/tivoli/tsm/server/bin/dbbkapi/dsm.sys

# Create TSM Instance
# Change the default directory for the database to be the same as the instance directory for the server.
RUN /opt/tivoli/tsm/db2/instance/db2icrt -a server -s ese -u ${USER} ${USER} && \
	mkdir -m 750 /database && chown ${USER}:servers /database /tsm/dsmserv.opt /tsm/tsmdbmgr.opt && \
	su ${USER} -lc "db2 update dbm cfg using dftdbpath ${USERDIR} && db2set -i ${USER} DB2NOEXITLIST=ON"

# Setup sqllib/userprofile
RUN su ${USER} -lc "echo setenv LD_LIBRARY_PATH /opt/tivoli/tsm/server/bin/dbbkapi:/usr/local/ibm/gsk8_64/lib64:\\\$LD_LIBRARY_PATH >> sqllib/usercshrc && echo export LD_LIBRARY_PATH=/opt/tivoli/tsm/server/bin/dbbkapi:/usr/local/ibm/gsk8_64/lib64:\\\$LD_LIBRARY_PATH >> sqllib/userprofile && echo export DSMI_CONFIG=${USERDIR}/tsmdbmgr.opt >> sqllib/userprofile && echo export DSMI_DIR=/opt/tivoli/tsm/server/bin/dbbkapi >> sqllib/userprofile && echo export DSMI_LOG=${USERDIR} >> sqllib/userprofile"

# An admin macro to create the admin user
COPY admin.macro /tsm/
# init is how we start our container, it supports a "setup" mode for new installs
COPY init /sbin/

# Our final docker parameters
EXPOSE 1500 1543
VOLUME [ "${USERDIR}","/database","/data" ]
ENTRYPOINT [ "/sbin/init" ]
CMD [ "start" ]

# Set out local time
RUN ln -sf /usr/share/zoneinfo/Australia/Melbourne /etc/localtime
```

> **NOTES**:
> * I use the install-fp.xml which doesnt install the license libraries - since they are not available in the public download.
> * You'll find this image in my registery, you can `docker pull registry.leenooks.net/deon/spdocker/server:8.1.8` to get it - feel free to try it.
> * The supporting files are in my [gitlab](http://dev.leenooks.net/deon/spdocker/tree/master)
> * *And Importantly* Dont forget that the first time you use this image, you need to initialise SP - details are [here](firstrun.html)

# Spectrum Protect Operations Center

```Dockerfile Operations Center Dockerfile
# NAME deon/spdocker/oc
# VERSION 8.1.8
# BUILD docker build -t="deon/spdocker/oc:8.1.8" .

# Since SP is supported on RHEL and its not available in docker, we'll use CentOS.
FROM centos:7

# OS Installation Prerequisites
RUN yum -y install http://yum.leenooks.net/CentOS/7/base/redhat-release-7-6.el7.centos.12.2.x86_64.rpm libaio ksh compat-libstdc++-33 numactl && yum clean all && rm -rf /var/tmp/*

COPY install-oc.xml /tmp/

# Installation
# Download http://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/server/v8r1/Linux/8.1.8.000/x86_64/8.1.8.000-IBM-SPSRV-Linuxx86_64.bin to a local server (otherwise it will be slow).
RUN SOURCE_URL=http://SOURCE_URL && \
 mkdir -p /tmp/build && cd /tmp/build && \
  curl -SL ${SOURCE_URL}/8.1.8.000-IBM-SPSRV-Linuxx86_64.bin > tsm && chmod +x tsm && ./tsm && rm -f tsm && \
  ./install.sh -s -input /tmp/install-oc.xml -acceptLicense && \
  rm -rf /tmp/build /tmp/install*xml

COPY init /sbin/

# Our final docker parameters
EXPOSE 11443
ENTRYPOINT [ "/sbin/init" ]
CMD [ "start" ]

## For some reason the silent install is not setting installPath correctly.
RUN sed -i 's#^installPath=#installPath=/opt/tivoli/tsm/ui#' /opt/tivoli/tsm/ui/Liberty/bin/opscenter.rc
```

> **NOTES**:
> * You'll find this image in my registery, you can `docker pull registry.leenooks.net/deon/spdocker/oc:8.1.8` to get it - feel free to try it.
> * The supporting files are in my [gitlab](http://dev.leenooks.net/deon/spdocker/tree/oc)
