High level steps for now. To be updated with more details.
1. Remove old docker and install the latest stable.
2. Update listener to connect from remote, enable service (systemd)
3. Enable ip forwarding on docker host
4. Increase max size of docker image (i.e. 30G)
5. Create TC network (bridge) for all TC containers.
6. Create Oracle Image (18.3.0-ee), with customer scripts supplied for Teamcenter
Env: ORACLE_SID, ORACLE_PDB, ORACLE_PWD, ORACLE_CHARACTERSET
Volume: map local script directory to /opt/oracle/scripts/startup
Hotname: provide meaningful hostname
Network: tcnetwork
Custom Script: create TC table space, schema, and import corporate dump, update volume definition.
Note: run custom script after PDB is in READ WRITE status.
7. Create FMS container, publish 4544. Use mapped volume for TC_ROOT/TC_LOGS/TCVOLS
8. Create License container, publish 28000-28001 (use fixed vendor daemon port 28001 in license file)
9. Create TCServer container with web/pool and FSC slave included. Publish 8080 (Tomcat), 8081 (jmx, if needed), 8087 (mux). use mapped TC_ROOT/TC_DATA/TCLOGS/WEBAPPS. If Load Balancer is configured (step #10), then publishing 8080 port is optional.
Reload FMS preference into database if the new containers don't match the configurations in the corporate schema template (bootstrap URLs, default TV ID, etc.)
TcServer can be created multiple times for scalability purpose (TcServer1, TcServer2, ...)
TcServer container runs a custom script as entry point which updates configuration files on the fly before starting all services, i.e. FSC Slave scripts and configurations as each TCServer needs a unique FSC ID as slave.
Each TcServer provision it will add new FSC instance into FMS Master configuration. Make sure FMS Master (on FMS container) reload configuration on the fly when new TCServer provisioned.
10. Create nginx container as load balancer, as there can be multiple TcServer containers provisioned. It publish only 80 (and 443 if SSL), and distribute across all the Tomcat in each TcServer containers.
Overall creation of docker containers:
* Oracle 18.3.0-ee Base: 7m
* Oracle runtime creation: 10m
* TC FMS/LIC Base: 6m
* TC Server Base: 5m
* TC runtime (FMS/LIC/WEB-POOLx2): 1m
* TC NGINX LB runtime: 1m
Docker Status: