This page provides instructions and sample scripts on how to build an example package for building 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 imageTo create a Docker image -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 ComponentsDocker 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. |
- Download and extract the example package into an empty working directory.
- Download a 2022x or newer version of Teamwork Cloud No-Install Linux package.
- Rename or symbolically link the no-install package to twcoudsuite.zip.
- Execute the config.tw-compose.sh script to stage the containerization environment.
Run the following command to initialize Docker Compose container configurations: | Code Block |
|---|
| language | bash |
|---|
| theme | DJango |
|---|
| linenumbers | true |
|---|
| docker compose build |
Run the following command to launch containers: 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
|
Run the following command. Do not forget to add a space and a full stop at the end. | Code Block |
|---|
| language | bash |
|---|
| theme | DJango |
|---|
| linenumbers | true |
|---|
| docker buildcompose 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
Run the following command. Do not forget to add a space and a full stop at the end. | Code Block |
|---|
| language | bash |
|---|
| theme | DJango |
|---|
| linenumbers | true |
|---|
| docker build -t twcloud . |
You can choose a different image name, if necessary.
Helpful commandsIf you execute this command for the first time, it will build the containers as well. - Use the following URLs:
Helpful commandsTo follow the output (tail) the output of a specific To show the output of the Teamwork Cloud Docker container: | Code Block |
|---|
| language | bash |
|---|
| theme | DJango |
|---|
| linenumbers | true |
|---|
| docker compose logs -f twcloud <Container Name or ID> |
To stop all Compose containerscontainers but retain data in non-persistent storage: | Code Block |
|---|
| language | bash |
|---|
| theme | DJango |
|---|
| linenumbers | true |
|---|
| docker compose stop |
To To stop all and remove all running containers (non-persistent storage data will be lost): | Code Block |
|---|
| language | bash |
|---|
| theme | DJango |
|---|
| linenumbers | true |
|---|
| docker compose down -v |
Building Teamwork Cloud containers in a clustered environmentTo build Teamwork Cloud container in a cluster - Create a Docker image.
- Then do the following on each host:
- Expose port 2552 by adding it to compose/docker-compose.yml#twcloud.ports (same as 8111 port).
- Configure compose/configuration/application.conf key akka.cluster.seed-nodes as as described in the article Teamwork Cloud Cluster Setup.
- Modify CASSANDRA_SEEDS in compose/docker-compose.yml as described in the article Teamwork Cloud Cluster Setup.
Run command: | Code Block |
|---|
| language | bash |
|---|
| theme | DJango |
|---|
| linenumbers | true |
|---|
| docker compose up -d |
Configuring Cassandra on a host machineDocker 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:9042Remove or comment all sections of cassandra under services in docker-compose.ymlRemove or comment all sections of depends_on under twcloud |