Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Content layer
id1087436400
Content column
width50.00001%
id1087436380
Content column
width50.00001%
id1087436468
You can choose a different image name, if necessary.
Content block
id1087504433
Warning
These procedures are intended for users with Docker knowledge. We do not provide Docker support
Docker
, just provide guidelines on how to use it with our product. For more information about Docker, see https://docs.docker.com/

Table of Contents

Content block
id1087436467

This page provides an example package for building

This page provides instructions and sample scripts on how to build

Cassandra and Teamwork Cloud

containers

components from

the

a Teamwork Cloud No

Install archive. These containers can be run on any orchestration platform together with WebApps to ensure easy Teamwork Cloud deployment.
Tip

To build your Teamwork Cloud container, download the ZIP archive below:

Creating a Docker image

To create a Docker image

  • Create a working directory image/

  • Extract the content of Teamwork Cloud No Install archive for Linux to image/ to create a folder named image/TeamworkCloudSuite/

    Info

    You can modify your configurations as needed:

      • TeamworkCloudSuite/jvm.options

      • TeamworkCloudSuite/configuration/application.conf

      • TeamworkCloudSuite/configuration/logback.xml

  • -Install package. The example package uses Docker Compose to build all the components required to deploy a fully-functional Teamwork Cloud containerized environment. Such an environment can be deployed in an orchestration framework to enhance scaling and management.

    Teamwork Cloud Container Example Package Components

    Docker Hub Pulled Images:

    • Cassandra 4.0.3
    • Zookeeper 3.7.0
    • ZooNavigator 1.1.1 (elkozmon)
    • Elasticsearch 7.16.2 

    External Packages:

    • Teamwork Cloud 2022x No-Install Linux (downloaded from the 3DS software download page)
    • ActiveMQ Artemis 2.26.0 (downloaded automatically after executing the containerization environment staging script)

    Example with Docker Compose

    Note

    The example package requires at least 32GB of available RAM.

    1. Download and extract the example package into an empty working directory.
    2. Download a 2022x or newer version of Teamwork Cloud No-Install Linux package.
    3. Rename or symbolically link the no-install package to twcoudsuite.zip.
    4. Execute the config.twc-compose.sh script to stage the containerization environment.
    5. Run the following command to initialize Docker Compose container configurations:

      Code Block
      languagebash
      themeDJango
      linenumberstrue
      docker compose build
    6. Run the following command to launch containers:

    Run the following command. Do not forget to add a space and a full stop at the end.
    1. Code Block
      languagebash
      themeDJango
      linenumberstrue
      docker 
    build
    1. compose up -
    t twcloud .

    You can choose a different image name, if necessary.

    Example with Docker Compose

    Note

    This requires 12GB of RAM.

  • Create a working directory compose/
  • Copy the content from image/TeamworkCloudSuite/configuration to compose/configuration
  • Modify configurations as needed:
    • configuration/application.conf
    • configuration/logback.xml
  • In this sample, it is mandatory to modify configuration/application.conf as follows:
    • Change the key value esi.persistence.datastax-java-driver.basic.contact-points from 127.0.0.1:9042 to cassandra:9042
  • (Optional) You can modify the memory limits for Cassandra and Teamwork Cloud in docker-compose.yml
    1. d

      If you execute this command for the first time, it will build the containers as well.

    2. Use the following URLs:
      • To access web UI:

        Code Block
        languagebash
        https://host.docker.internal:8443/webapp
      • To connect from a modeling tool client (with default port 3579):

    Run the following command. Do not forget to add a space and a full stop at the end.
      • Code Block
        languagebash
      • host.docker.internal
      •  To access REST API/Swagger Page:

        Code Block
        languagebash
        https://host.docker.internal:8111
    Info

    You can apply the Teamwork Cloud license via the web UI or REST API

    themeDJango
    linenumberstrue
    docker build -t twcloud .

    Helpful commands

    To

    show

    follow the output (tail) the output of

    the Teamwork Cloud Docker

    a specific container:

    Code Block
    languagebash
    themeDJango
    linenumberstrue
    docker compose logs -f
    twcloud
     <Container Name or ID>

    To stop all

    Compose containers

    containers but retain data in non-persistent storage:

    Code Block
    languagebash
    themeDJango
    linenumberstrue
    docker compose stop
    To

     To stop all and remove all running containers (non-persistent storage data will be lost):

    Code Block
    languagebash
    themeDJango
    linenumberstrue
    docker compose down -v

    Building Teamwork Cloud containers in a clustered environment

    To build Teamwork Cloud container in a cluster

    1. Create a Docker image.
    2. Then do the following on each host:
      1. Expose port 2552 by adding it to compose/docker-compose.yml#twcloud.ports (same as 8111 port).
      2. Configure compose/configuration/application.conf key akka.cluster.seed-nodes as as described in the article Teamwork Cloud Cluster Setup.
      3. Modify CASSANDRA_SEEDS in compose/docker-compose.yml as described in the article Teamwork Cloud Cluster Setup.
      4. Run command:

        Code Block
        languagebash
        themeDJango
        linenumberstrue
        docker compose up -d

    Configuring Cassandra on a host machine

    Docker provides a special hostname for the host machine: host.docker.internal

    How to use the special hostname

  • Change the configuration/application.conf key esi.persistence.datastax-java-driver.basic.contact-points to host.docker.internal:9042
  • Remove or comment all sections of cassandra under services in docker-compose.yml
  • Remove or comment all sections of depends_on under twcloud