IBM Sterling B2B: Install on Docker for Development

From Wiki

Follow this documentation to install Sterling B2B on Docker.

This setup is for development/proof-of-concept and was tested on my MacOs. I will not provide how to install docker on your O.S.

Procedure:

Install DB2 on Docker

Install DB2 on a Docker Container

Create my volumes

mkdir -p ˜/DockerVolumes/mydb2

Run this command

docker pull ibmcom/db2

docker run -d --name mydb2 --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=db2inst1 -v ˜/DockerVolumes/mydb2:/database ibmcom/db2

you can check install

docker logs -f mydb2

Create B2B database on DB2

Create a file create_db_b2b62.sql with the following data:

-- *****************************************************************
--
--
--
-- *****************************************************************
-- CODESET UTF-8 is mandatory for B2B
!db2set DB2_SKIPDELETED=ON@
!db2set DB2_SKIPINSERTED=ON@

CREATE DATABASE B2B62 AUTOMATIC STORAGE YES USING CODESET UTF-8 TERRITORY DEFAULT COLLATE USING SYSTEM PAGESIZE 32768@

CONNECT TO B2B62@
CREATE BUFFERPOOL B2B62_04KBP IMMEDIATE SIZE AUTOMATIC PAGESIZE 4K@
CREATE BUFFERPOOL B2B62_08KBP IMMEDIATE SIZE AUTOMATIC PAGESIZE 8K@
CREATE BUFFERPOOL B2B62_16KBP IMMEDIATE SIZE AUTOMATIC PAGESIZE 16K@
CONNECT RESET@

CONNECT TO B2B62@
CREATE USER TEMPORARY TABLESPACE SCCUSERTMP PAGESIZE 32K BUFFERPOOL IBMDEFAULTBP@
CREATE REGULAR TABLESPACE TS_REG04_B2B62 PAGESIZE 4K BUFFERPOOL B2B62_04KBP PREFETCHSIZE AUTOMATIC@
CREATE REGULAR TABLESPACE TS_REG08_B2B62 PAGESIZE 8K BUFFERPOOL B2B62_08KBP PREFETCHSIZE AUTOMATIC@
CREATE REGULAR TABLESPACE TS_REG16_B2B62 PAGESIZE 16K BUFFERPOOL B2B62_16KBP PREFETCHSIZE AUTOMATIC@
CONNECT RESET@

Save file

Copy file to containter

docker cp create_db_b2b62.sql mydb2:/tmp

Connect to Docker container and run db2 commands

docker exec -it mydb2 bash -c "su - db2inst1"

cd /tmp

db2 -td@ -vf ./create_db_b2b62.sql -z ./create_db_b2b62.log

run exit to logoff from container.

Copy jdbc driver to host machine

docker cp mydb2:/opt/ibm/db2/V11.5/java/db2jcc4.jar .
docker cp mydb2:/opt/ibm/db2/V11.5/java/db2jcc_license_cu.jar .

Install Sterling B2B on Docker

Load docker images locally

You must download container images from Password Advantage site. After you must load Sterling B2B container image to local registry using the following command:

docker load -i STR_B2BI_6.0.2_CONTAINER_MP_ML.tar

you can check with the command:

docker images

Create a setup.cfg file

# Upgrade
UPGRADE=false

#License - Specify values as true/false
LICENSE_ACCEPT_ENABLE_SFG=true
LICENSE_ACCEPT_ENABLE_EBICS=true
LICENSE_ACCEPT_ENABLE_FINANCIAL_SERVICES=true

# Security configurations
SYSTEM_PASSPHRASE=passw0rd
#FIPS compliance mode. Specify values as true/false
ENABLE_FIPS_MODE=
# NIST 800-131a compliance mode. Enter one of these values - strict/transition/off
NIST_COMPLIANCE_MODE=

#Initial or base port
INITIAL_PORT=5800

# DB attributes
DB_VENDOR=db2
DB_USER=db2inst1
DB_PASSWORD=db2inst1
DB_HOST=localhost
DB_PORT=50000
DB_DATA=B2B62
DB_DRIVERS=db2jcc4.jar
DB_CREATE_SCHEMA=true
ORACLE_USE_SERVICE_NAME=false

#Email
[email protected]
SMTP_HOST=2525

#Miscellaneous
SOFT_STOP_TIMEOUT=

#WMQ
#JMS properties are optional if JMS_VENDOR is empty
#To use IBMMQ for communication between ASI & AC, change property to JMS_VENDOR=IBMMQ
# and provide other connection details
JMS_VENDOR=
JMS_CONNECTION_FACTORY=
JMS_CONNECTION_FACTORY_INSTANTIATOR=
JMS_QUEUE_NAME=
JMS_USERNAME=
JMS_PASSWORD=
JMS_CONNECTION_NAME_LIST=
JMS_CHANNEL=
JMS_ENABLE_SSL=false
JMS_KEYSTORE_PATH=
JMS_KEYSTORE_PASSWORD=
JMS_TRUSTSTORE_PATH=
JMS_TRUSTSTORE_PASSWORD=
JMS_CIPHERSUITE=
JMS_PROTOCOL=TLSv1.2

#Liberty Profile SSL Config
LIBERTY_KEYSTORE_PASSWORD=
LIBERTY_KEYSTORE_LOCATION=
LIBERTY_PROTOCOL=TLSv1.2

#jvm options. Example: LIBERTY_JVM_OPTIONS=-Xms256m;-Xmx512m
LIBERTY_JVM_OPTIONS=

#JCE update parameters
#Set value true to update JCE
UPDATE_JCE_POLICY_FILE=false
#Name of JCE file. This file should be present in mapped folder
JCE_POLICY_FILE=

#End of Configuration

Encrypting passwords

In this example i not encrypted password.

You can encrypt the following variables: SYSTEM_PASSPHRASE, DB_PASSWORD, JMS_PASSWORD, JMS_KEYSTORE_PASSWORD, JMS_TRUSTSTORE_PASSWORD, LIBERTY_KEYSTORE_PASSWORD

To do run the following command. Example:

echo passw0rd | openssl enc -aes-256-ecb -e -a -K 4254514F6C6C2B594650496373422B764D66584E54673D3D

After change

SYSTEM_PASSPHRASE=passw0rd

to the following

SYSTEM_PASSPHRASE=ENCRYPTED:SV/xIqkXTmUZ9byaBlKlIw==

Run setup

Ver também