Building the Docker Images

To build the TIBCO Mashery Local Docker images, follow the steps in the sections below.

Upload SSL Server Certificate for Traffic Manager

Jenkins job "upload-ssl-server-certificate" is for uploading the customer SSL certificate. This certificate will be installed in Traffic Manager and is used for serving HTTPS requests.

Traffic Manager uses a default self-signed SSL certificate for serving HTTPS requests if no customer SSL certificate is uploaded.

To upload SSL certificate:
  1. Click "Browse..." button to select the SSL certificate file, PKCS#12 format is supported.
  2. Input certificate password.
  3. Click "Build" to upload SSL certificate.
Note: The generated JKS keystore is in /var/jenkins_home/userContent/proxy-ssl.

Upload SSL Server Certificate for Platform API

Jenkins job "upload_ssl_server_certificate_for_platform_api" is used for uploading the customer SSL certificate. This certificate will be installed in the Platform API container for serving platform API requests via HTTPs.

To upload SSL certificate:
  1. Click "Browse..." button to select the SSL certificate file, PKCS#12 format is supported.
  2. Input certificate password.
  3. Click "Build" to upload SSL certificate.
Note: The generated JKS keystore is in /var/jenkins_home/userContent/proxy-ssl.

Upload the Mashery-built Adapter

The Jenkins job " upload-mashery-built-adapter" is for uploading the TIBCO Mashery-built adapter, and can be accessed via the Jenkins web console:

To upload a TIBCO Mashery-built adapter:
  1. Click Browse to select the adapter file.
  2. Click Build to upload the adapter to Jenkins server.
Note:
  • A TIBCO Mashery-built adapter is made available to customers via TIBCO Mashery FTP service.
  • A TIBCO Mashery-built adapter is a tar.gz or tgz file; an example of the file contents:
    -rw-r--r-- artifacts.jar
    drwxr-xr-x binary
    -rw-r--r-- content.jar
    drwxr-xr-x features
    drwxr-xr-x plugins
  • The compressed contents of the TIBCO Mashery-built adapter are extracted to /var/jenkins_home/userContent/proxy-customer in the tml-installer container.
When the Docker image for Traffic Manager is built, this mashery-built adapter will be built into the docker image. Here is an example build output.
15:50:11 Updating /opt/javaproxy/proxy...
15:50:12 INFO  Profile Local
15:50:12 INFO  Timestamp Sat, 17 Nov 2018 23:50:11 GMT
15:50:12 INFO  Found com.mashery.apiserver.oauth.feature.group 1.16.0.v20181116-0033 Mashery API Server
15:50:12 INFO  Found com.mashery.proxy.local.customer.extensions.feature.group 1.0.0 Customer Extensions
15:50:12 INFO  Found com.mashery.proxy.local.customer.feature.group 1.0.0 Customer-specific Bundles
15:50:12 INFO  Found com.mashery.proxy.local.product 1.46.0.v20181116-2143 Mashery Proxy
15:50:13 INFO  Installing com.mashery.proxy.local.customer.feature.group 1.59.0.v20180813-0728
15:50:13 INFO  Profile updated.
15:50:13 INFO  Timestamp Sat, 17 Nov 2018 23:50:13 GMT
15:50:13 INFO  Found com.mashery.apiserver.oauth.feature.group 1.16.0.v20181116-0033 Mashery API Server
15:50:13 INFO  Found com.mashery.proxy.local.customer.extensions.feature.group 1.0.0 Customer Extensions
15:50:13 INFO  Found com.mashery.proxy.local.customer.feature.group 1.59.0.v20180813-0728 Customer-specific Bundles
15:50:13 INFO  Found com.mashery.proxy.local.product 1.46.0.v20181116-2143 Mashery Proxy
15:50:14 INFO  Operation completed in 1996 ms.

Upload the Customer-built Adapter

Jenkins job "upload-customer-built-adapter" is for uploading the customer-built adapter, and can be accessed via Jenkins web console:

To upload a customer-built adapter:
  1. Click Browse to select the adapter file.
  2. Click Build to upload the adapter to the Jenkins server.
Note:
  • A customer-built adapter is built by a customer using the Mashery SDK.
  • A customer-built adapter is zip file; and uploaded to /var/jenkins_home/userContent/proxy-extension in the tml-installer container.
When the Docker image for Traffic Manager is built, this customer-built adapter will be built into the Docker image. Here is an example build output:
15:50:14 * Connected to tmgc-installer-host (x.x.4.60) port 8080 (#0)
15:50:14 > GET /userContent/proxy-extension/customer_extension.zip HTTP/1.1
15:50:14 > User-Agent: curl/7.29.0
15:50:14 > Host: tmgc-installer-host:8080
15:50:14 > Accept: */*
15:50:14 > 
15:50:14 [0m[91m< HTTP/1.1 200 OK
15:50:14 < Date: Sat, 17 Nov 2018 23:50:14 GMT
15:50:14 < X-Content-Type-Options: nosniff
15:50:14 < Content-Security-Policy: sandbox; default-src 'none'; img-src 'self'; style-src 'self';
15:50:14 < X-WebKit-CSP: sandbox; default-src 'none'; img-src 'self'; style-src 'self';
15:50:14 < X-Content-Security-Policy: sandbox; default-src 'none'; img-src 'self'; style-src 'self';
15:50:14 < Last-Modified: Sat, 17 Nov 2018 23:42:06 GMT
15:50:14 < Expires: Sat, 17 Nov 2018 23:42:06 GMT
15:50:14 < Accept-Ranges: bytes
15:50:14 < Content-Type: application/zip
15:50:14 < Content-Length: 126649
15:50:14 < Server: Jetty(9.4.z-SNAPSHOT)
15:50:14 < 
15:50:14 { [data not shown]
15:50:14 
100  123k  100  123k    0     0  18.9M      0 --:--:-- --:--:-- --:--:-- 20.1M
15:50:14 * Connection #0 to host tmgc-installer-host left intact
15:50:14 [0mArchive:  /tmp/customer_extension.zip
15:50:14   inflating: /tmp/customer-bundles/Base64Adapter-1.0.jar  
15:50:14   inflating: /tmp/customer-bundles/Base64UrlAdapter-1.0.jar  
15:50:14   inflating: /tmp/customer-bundles/Base64UrlAdapter2-1.0.jar  
15:50:14   inflating: /tmp/customer-bundles/lib/codec-1.3.0.v201101211617.jar  
15:50:14   inflating: /tmp/customer-bundles/lib/codec-1.4.0.v201209201156.jar  
15:50:14 /opt/javaproxy/tools/packager /opt/javaproxy
15:50:15 Buildfile: /opt/javaproxy/tools/packager/build.xml
15:50:15 
15:50:15 all:
15:50:15 
15:50:15 setUp:
15:50:15     [mkdir] Created dir: /tmp/dist-repository
15:50:15     [mkdir] Created dir: /tmp/dist-repository/source
15:50:15     [mkdir] Created dir: /tmp/dist-repository/source/plugins
15:50:15     [mkdir] Created dir: /tmp/dist-repository/source/features
15:50:15     [mkdir] Created dir: /tmp/dist-repository/destination
15:50:15 
15:50:15 packageRepository:
15:50:15      [copy] Copying 2 files to /tmp/dist-repository/source/features
15:50:15 
15:50:15 publishRepository:
15:50:15       [zip] Building zip: /tmp/dist-repository/repository.zip
15:50:15 BUILD SUCCESSFUL
15:50:15 
15:50:15 BUILD SUCCESSFUL
15:50:15 Total time: 0 seconds
15:50:15 /opt/javaproxy
15:50:15 Archive:  /tmp/dist-repository/repository.zip
15:50:15    creating: /tmp/dist-install/features/
15:50:15    creating: /tmp/dist-install/plugins/
15:50:15   inflating: /tmp/dist-install/artifacts.xml  
15:50:15   inflating: /tmp/dist-install/content.xml  
15:50:15   inflating: /tmp/dist-install/features/com.mashery.proxy.local.customer.extensions_1.0.0.201811172350.jar  
15:50:15   inflating: /tmp/dist-install/plugins/com.mashery.customer.Base64Adapter-1.0_1.0.0.201811172350.jar  
15:50:15   inflating: /tmp/dist-install/plugins/com.mashery.customer.Base64UrlAdapter-1.0_1.0.0.201811172350.jar  
15:50:15   inflating: /tmp/dist-install/plugins/com.mashery.customer.Base64UrlAdapter2-1.0_1.0.0.201811172350.jar  
15:50:15 Updating /opt/javaproxy/proxy...
15:50:16 INFO  Profile Local
15:50:16 INFO  Timestamp Sat, 17 Nov 2018 23:50:13 GMT
15:50:16 INFO  Found com.mashery.apiserver.oauth.feature.group 1.16.0.v20181116-0033 Mashery API Server
15:50:16 INFO  Found com.mashery.proxy.local.customer.extensions.feature.group 1.0.0 Customer Extensions
15:50:16 INFO  Found com.mashery.proxy.local.customer.feature.group 1.59.0.v20180813-0728 Customer-specific Bundles
15:50:16 INFO  Found com.mashery.proxy.local.product 1.46.0.v20181116-2143 Mashery Proxy
15:50:16 INFO  Installing com.mashery.proxy.local.customer.extensions.feature.group 1.0.0.201811172350
15:50:17 INFO  Profile updated.
15:50:17 INFO  Timestamp Sat, 17 Nov 2018 23:50:17 GMT
15:50:17 INFO  Found com.mashery.apiserver.oauth.feature.group 1.16.0.v20181116-0033 Mashery API Server
15:50:17 INFO  Found com.mashery.proxy.local.customer.extensions.feature.group 1.0.0.201811172350 Mashery Customer Extensions
15:50:17 INFO  Found com.mashery.proxy.local.customer.feature.group 1.59.0.v20180813-0728 Customer-specific Bundles
15:50:17 INFO  Found com.mashery.proxy.local.product 1.46.0.v20181116-2143 Mashery Proxy
15:50:17 INFO  Operation completed in 1350 ms.