Starting the Docker Containers

Starting the Docker containers in deployment makes the application usable for the users. For more details, please refer to Chapter Building and Running the Application.

We recommend not to have any Docker container already running on the target machine, as it may interfere with your application.

To Start the Docker Containers

  1. Display running containers using the following command:

    deployment ~> docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
  2. Start the infrastructure containers using Docker with the following command:

    deployment ~> (cd infra && docker compose up -d)
    deployment ~> # The following command allows to ensure that every infrastructure 
    deployment ~> # services are up and running.
    deployment ~> (cd infra && docker compose ps)
    ~/deployment/infra
               Name                         Command               State                                                          Ports                                                        
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    gene-sample-keycloak         /opt/jboss/tools/docker-en ...   Up      0.0.0.0:9090->8080/tcp, 8443/tcp, 9990/tcp                                                                          
    gene-sample-mongo            docker-entrypoint.sh mongod      Up      0.0.0.0:27017->27017/tcp                                                                                            
    gene-sample-postgres         container-entrypoint run-p ...   Up      0.0.0.0:5432->5432/tcp                                                                                              
    gene-sample-rabbitmq         docker-entrypoint.sh /opt/ ...   Up      15671/tcp, 0.0.0.0:15672->15672/tcp, 25672/tcp, 4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 0.0.0.0:61613->61613/tcp

    It creates and starts all the infrastructure services and the Platform application Docker internal network.

  3. Start the Optimization server by typing the following command:

    deployment ~> (cd dbos && docker compose up -d)
    deployment ~> # The following command allow to ensure that every Optimization server 
    deployment ~> # services are up and running.
    deployment ~> (cd dbos && docker compose ps)
    ~/deployment/dbos
                 Name                           Command               State               Ports             
    --------------------------------------------------------------------------------------------------------
    gene-sample-dbos-documentation   nginx -c /home/optimserver ...   Up      80/tcp, 0.0.0.0:1313->8080/tcp
    gene-sample-dbos-master          sh -c java $JAVA_OPTS -jar ...   Up      0.0.0.0:8088->8080/tcp        
    gene-sample-dbos-web-console     sh -c envsubst < /home/das ...   Up      80/tcp, 0.0.0.0:8089->8080/tcp
  4. To make the whole system available, start your Platform application typing the following commands:

    deployment ~> # # Starting the Platform application
    deployment ~> (cd app && docker compose up -d)
    deployment ~> # # Starting the Optimization server workers
    deployment ~> (cd app && docker compose -f docker-compose-workers.yml up -d)
    deployment ~> # Checking the Services
    deployment ~> (cd app && docker compose ps)
    
    ~/deployment/app
                  Name                            Command               State           Ports         
    -------------------------------------------------------------------------------------------------------------
    gene-sample-backend-service        java -jar /app.jar               Up       0.0.0.0:8080->8080/tcp, 8443/tcp 
    gene-sample-data-service           java -jar /app.jar               Up       0.0.0.0:8080->8080/tcp, 8443/tcp 
    gene-sample-execution-service      java -jar /app.jar               Up       0.0.0.0:8080->8080/tcp, 8443/tcp 
    gene-sample-gateway-service        java -jar /app.jar               Up       0.0.0.0:8080->8080/tcp, 8443/tcp 
    gene-sample-scenario-service       java -jar /app.jar               Up       8080/tcp, 8443/tcp 
    gene-sample-web                    sh -c envsubst < /home/web ...   Up       8080/tcp 
    gene-sample-checker-worker         java -jar /app.jar               Up       8080/tcp, 8443/tcp   
    gene-sample-engine-worker          java -jar /app.jar               Up       8080/tcp, 8443/tcp 
    gene-sample-python-engine-worker   java -jar /app.jar               Up       8080/tcp, 8443/tcp