Image containing tools to exchange data between Foundry an Nexternal.
665
This repository contains images for the TrueCommerce Nexternal Middle Tier
Prior to running the container the application requires an Administrator Certificate from Foundry Platform. One way this can be obtained is by running the associated tool from the Foundry Security Tools. Follow the steps in the "Generate authentication certificate" and save the output.
This certificate is only used to initialize the Middle Tiers and is needed every time a Middle Tier comes online. The exception would be if another instance of the same middle tier has cached an application specific version in a distributed cache which is still running and valid. As such the value should either be a long lived certificate (years) or be regularly updated to ensure issues don't exist when starting up the Middle Tier.
The Middle Tier supports running multiple instances simultaneously and is recommended for high volume production environments.
The recommended configuration also includes using Redis as a cache provider. As such, for a Docker deployment a docker-compose file combined with a .env or secrets is the recommended approach and is what will be detailed below.
This is an example of a full production deployment docker-compose file including multiple nodes for both the Middle Tiers and Providers:
version: '3.4'
services:
redis:
image: redis:6.0-alpine
container_name: Nexternal-Redis
restart: unless-stopped
nexternal:
image: truecommerce/tc.nexternal.middletier:${IMAGE_VERSION}
container_name: NexternalMDT
restart: unless-stopped
environment:
- ASPNETCORE_ENVIRONMENT=Production
- MiddleTier__InitializationCertificate=${INITIALIZATION_CERT}
- Foundry__CoreOData__RootUrl=${COREODATA_HOST}
- Foundry__Security__RootUrl=${SECURITY_MICROSERVICE_HOST}
- Foundry__Security__CorsOriginAllowed=http://localhost:30000;http://${MT_HOST}:${MT_PORT}
- Foundry__RabbitMQ__Host=${RABBIT_CONNECTION}
- Foundry__RabbitMQ__Username=${RABBIT_USER}
- Foundry__RabbitMQ__Password=${RABBIT_PASSWORD}
- Foundry__RabbitMQ__Timeout=${RABBIT_TIMEOUT}
- MiddleTier__CorsOriginAllowed=http://localhost:30000;http://${MT_HOST}:${MT_PORT}
- MiddleTier__Caching__Provider=${CACHE_PROVIDER}
- MiddleTier__Caching__Redis_Configuration__Connection=Nexternal-Redis:6379
- MiddleTier__Caching__Redis_Configuration__InstanceName=${REDIS_INSTANCE}
- MiddleTier__Caching__Redis_Configuration__UseWithNHibernate=${USE_REDIS_NHIBERNATE}
- MiddleTier__Registration__ProviderPort = ${PROVIDER_PORT}
ports:
- ${MT_PORT}:80
links:
- redis
nexternalmtp:
image: truecommerce/tc.nexternal.providers
container_name: Nexternal-MTP
restart: unless-stopped
environment:
- ASPNETCORE_ENVIRONMENT=Production
- MiddleTier__InitializationCertificate=${INITIALIZATION_CERT}
- Foundry__CoreOData__RootUrl=${COREODATA_HOST}
- Foundry__Security__RootUrl=${SECURITY_MICROSERVICE_HOST}
- Foundry__Security__CorsOriginAllowed=http://localhost:30000;http://${PROVIDER_HOST}:${PROVIDER_PORT};${COREODATA_HOST}
- Foundry__RabbitMQ__Host=${RABBIT_CONNECTION}
- Foundry__RabbitMQ__Username=${RABBIT_USER}
- Foundry__RabbitMQ__Password=${RABBIT_PASSWORD}
- Foundry__RabbitMQ__Timeout=${RABBIT_TIMEOUT}
- MiddleTier__MicroserviceOData=http://NexternalMDT/odata
- MiddleTier__CorsOriginAllowed=http://localhost:30000;http://${PROVIDER_HOST}:${PROVIDER_PORT};${COREODATA_HOST}
- MiddleTier__Caching__Provider=${CACHE_PROVIDER}
- MiddleTier__Caching__Redis_Configuration__Connection=Nexternal-Redis:6379
- MiddleTier__Caching__Redis_Configuration__InstanceName=${REDIS_INSTANCE}
- MiddleTier__Caching__Redis_Configuration__UseWithNHibernate=${USE_REDIS_NHIBERNATE}
ports:
- ${PROVIDER_PORT}:80
links:
- redis
| Variable Name | Description | Example |
|---|---|---|
| IMAGE_VERSION | Version component of the tag | 1.0.200.0000 |
| INITIALIZATION_CERT | Initialization certificate generated by security tools | |
| COREODATA_HOST | Location of the Core OData (MSI) services | https://localhost:30000 |
| SECURITY_MICROSERVICE_HOST | Location of the Security Microservice | https://localhost:30100 |
| RABBIT_CONNECTION | Connection string for RabbitMQ instance used by Foundry | rabbitmq://localhost |
| RABBIT_USER | The username for the Foundry RabbitMQ connection | tc |
| RABBIT_PASSWORD | The password for the Foundry RabbitMQ connection | tc |
| RABBIT_TIMEOUT | A default timeout for RabbitMQ messages | 0.00:00:15 |
| CACHE_PROVIDER | Mechanism to use for distributed caching. One of 'Redis' or 'InMemory' | Redis |
| REDIS_INSTANCE | Name of the instance used for Redis when CACHE_PROVIDER is Redis | Nexternal_Cache |
| USE_REDIS_NHIBERNATE | 'true' if Redis should be used for 2nd level caching in NHibernate and 'false' otherwise | false |
| MT_HOST | External name or IP where nginx will be run | localhost |
| MT_PORT | External port used to load balance and proxy for this middle tier | 12900 |
| PROVIDER_HOST | External name or IP where provider microservice will be run | localhost |
| PROVIDER_PORT | External port used to load balance and proxy for provider microservice middle tier | 12901 |
Content type
Image
Digest
Size
112.9 MB
Last updated
about 5 years ago
docker pull truecommerce/tc.nexternal.middletier