Skip to Content
Technical Articles

How to deploy Eclipse Dirigible private Docker image in the SAP Cloud Platform Cloud Foundry environment

Overview


Eclipse Dirigible is an open-source cloud development platform that provides capabilities for end-to-end development processes from database modeling and management, through RESTful services using server-side JavaScript, to pattern-based user interface generation, role-based security, external services integration, testing, debugging, operations and monitoring.

Some of the unique features include:

The platform aims to unify open-source business services by providing software developers with a convenient set of tools for building, running, and operating business applications in the Cloud. Dirigible is also part of the Eclipse Cloud Development top-level project.

Setup


Starting with Eclipse Dirigible 5.0, there are built-in integrations with the SAP Cloud Platform Cloud Foundry and Kyma environments. To deploy Eclipse Dirigible on either one of these environments, you need to use a Docker image. While deploying the publicly available Dirigible Docker images is quite straightforward, there could be some cases where a Docker image form a private Docker repository is needed. For example a proprietary extension to the Dirigible Web IDE is created, or new engine supporting some custom artefacts at the Dirigible Runtime is used, or just an application developed with Dirigible to be deployed in production. In any case building a Docker image and pushing it to a private Docker repository, seems reasonable.

In this tutorial, I’m going to show you how to deploy Eclipse Dirigible based Docker image from a private Docker repository. During the tutorial I’m going to use the Docker Hub “one private” repository policy from the “Free for Individuals” plan.

As a pre-requisite a Docker Hub registration is needed, if you already have such, or if you are going to use another private Docker repository, then skip this section.

  1. Go to https://hub.docker.com
  2. Create a new registration.
  3. Login to your account.

(Docker Hub)

Next we are going to create a new Private repository:

  1. Go to the Repositories tab.
  2. Click the Create Repository button.
  3. Set repository name (e.g. my-repository).
  4. Add repository description (this is optional).
  5. Switch the visibility from Public to Private
  6. Create the repository

(Docker Hub Create New Repository)

Once the private Docker repository is created, then it’s time to push the Docker image to it:

  1. Build your Docker image:
    docker build -t my-repository .
  2. Tag the Docker image:
    docker tag my-repository <your-docker-hub-user>/my-repository​
  3. Push the image to the private Docker repository:
    docker push <your-docker-hub-user>/my-repository​
  4. Check that the Docker image was successfully pushed:

(Docker Image Tags)

Now it’s time to login to the SAP Cloud Platform Cloud Foundry environment subaccount from the Cloud Foundry CLI:

  1. Install the Cloud Foundry CLI. You can either get the latest release on the official release page or use your package manager.
  2. Login to the SAP Cloud Platform Cockpit and copy the Org Name and the API Endpoint:
  3. Set the Cloud Foundry CLI API endpoint:
    cf api https://api.cf.eu10.hana.ondemand.com​
  4. Login to your subaccount:
    cf login​

The next step is to deploy the Docker image to the SAP Cloud Platform Cloud Foundry environment through the Cloud Foundry CLI:

  1. Execute the cf push command to create a new application:
    CF_DOCKER_PASSWORD=<docker-hub-password> \
    cf push <application-name> \
    --docker-image=<docker-hub-username>/my-repository \
    --docker-username=<docker-hub-username> \
    --hostname <application-name>-<org-name> \
    -m 2G -k 2G​
    • <docker-hub-password> – your Docker Hub password.
    • <application-name> – the application name.
    • <docker-hub-username> – your Docker Hub username.
    • <org-name> – the Org Name from the SAP Cloud Platform Cockpit.
  2. Bind an Authorization & Trust Management (XSUAA) service instance to the application:
    1. Navigate to your subaccount from the SAP Cloud Platform Cockpit.
    2. Create a new service instance (if you already have such, skip this step):
      1. Go to Services -> Service Marketplace.
      2. Search for the Authorization & Trust Management service.
      3. Click on the Create Instance button.
      4. Set the Service Plan to application.
      5. Give the service instance name (e.g. my-xsuaa).
      6. Go to the Next page.
      7. Provide a JSON configuration for the service instance like this one:
        {
           "xsappname": "my-xsuaa",
           "tenant-mode": "shared",
           "scopes": [
              {
                 "name": "$XSAPPNAME.Developer",
                 "description": "Developer scope"
              },
              {
                 "name": "$XSAPPNAME.Operator",
                 "description": "Operator scope"
              }
           ],
           "role-templates": [
              {
                 "name": "Developer",
                 "description": "Developer related roles",
                 "scope-references": [
                    "$XSAPPNAME.Developer"
                 ]
              },
              {
                 "name": "Operator",
                 "description": "Operator related roles",
                 "scope-references": [
                    "$XSAPPNAME.Operator"
                 ]
              }
           ],
           "role-collections": [
              {
                 "name": "dirigible",
                 "description": "Dirigible Developer",
                 "role-template-references": [
                    "$XSAPPNAME.Developer",
                    "$XSAPPNAME.Operator"
                 ]
              }
           ]
        }
        ​
      8. Click on the Create Instance button.
    3. Bind the XSUAA service instance to your application:
      1. Go to the Services -> Service Instances tab.
      2. Select your XSUAA service instance (e.g. my-xsuaa).
      3. From the “More” option, select Bind Application.
      4. Find your application and click on the Create button.
    4. Assign the required roles:
      1. Go to Security -> Trust Configuration.
      2. Open the trust configuration (e.g. sap.default).
      3. Find for your user and assign the required roles.
    5. For more detailed explanation of the service binding and the trust configuration parts, visit this blog post.
  3. Bind additional services, if needed.
    1. You can refer to the following blog post for PostgreSQL service binding.
  4. Restart the application.
  5. Access the application:

Related Resources


Notes


Next, you can visit the Samples section to master some of the basic Eclipse Dirigible functionalities, explore the Enterprise JavaScript APIs, check out the YouTube channel for video content, or simply visit the official site for news and updates.

Be the first to leave a comment
You must be Logged on to comment or reply to a post.