# NAME ibm/spectrumprotect # VERSION 8.1.1 # BUILD docker build -t="ibm/spectrumprotect:latest" . # START docker run -dp 1500:1500 [ -p 1543:1543 ] -v source:/tsm -v source:/data --restart=always --name=spectrum-protect ibm/spectrumprotect # 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/ ## New Install - Base level with License #RUN SOURCE_URL=http://YOUR_SITE_URL_HERE && \ # mkdir -p /tmp/build && cd /tmp/build && \ # curl -SL ${SOURCE_URL}/8.1.4 > tsm && df && chmod +x tsm && ./tsm && rm -f tsm && df && \ # ./install.sh -s -input /tmp/install.xml -acceptLicense && \ # rm -rf /tmp/build # New Upgrade Install - Need to get license from base level RUN SOURCE_URL=http://YOUR_SITE_URL_HERE && \ mkdir -p /tmp/build/8.1.0 && cd /tmp/build/8.1.0 && \ curl -SL ${SOURCE_URL}/8.1.0 > tsm && chmod +x tsm && ./tsm && rm -f tsm && \ ./install.sh -s -input /tmp/install.xml -acceptLicense && \ rm -rf /tmp/build/8.1.0 && ls -al /tmp/ && df && \ mkdir -p /tmp/build/8.1.1 && cd /tmp/build/8.1.1 && \ curl -SL ${SOURCE_URL}/8.1.1 > tsm && chmod +x tsm && df && ./tsm && df && rm -f tsm && \ ./install.sh -s -input /tmp/install-fp.xml -acceptLicense && df && \ rm -rf /tmp/install* /tmp/build/8.1.1 && ls -al /tmp/ && df && find /tmp/ # 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" ]