Creating a Docker Exporter Project

Create a Docker project if you want to deploy your integration solutions inside a Docker environment. This project directory allows you to package multiple integration projects into a single Docker image and then build and push to the Docker registries.

Tip

If you want to simultaneously create all the projects required for your use case, read about the integration project solution.

Prerequisites

It is recommended to get the latest updates for your WSO2 Integration Studio before trying these instructions.

Creating the Docker project

Follow the steps given below.

  1. Open WSO2 Integration Studio and click Miscellaneous → Create Docker Exporter Project in the Getting Started view as shown below.

  2. In the New Docker Project dialog that opens, enter a name for the Docker project and other parameters as shown below.

    Enter the following information:

    Parameter Description
    Docker Project Name Required. Give a name for the Docker project.
    Base Image Repository Required. Select the base Micro Integrator Docker image for your solution. Use one of the following options:
    • wso2/wso2mi: This is the community version of the Micro Integrator Docker image, which is stored in the public WSO2 Docker registry. This is selected by default.
    • docker.wso2.com: This is the Micro Integrator Docker image that includes product updates. This image is stored in the private WSO2 Docker registry. Note that you need a valid WSO2 subscription to use the Docker image with updates.
    • You can also use a custom Docker image from a custom repository.
    If you specify a Docker image from a private repository, note that you need to log in to your repository from a terminal before you build the image (as explained below).
    Base Image Tag Required. Specify the tag of the base image that you are using.
    Target Image Repository Required. The Docker repository to which you will later push this Docker image.
    • If your repository is in Docker Hub, use the docker_user_name/repository_name format.
    • If you are using any other repository, use the repository_url/repository_user_name/repository_name forrmat.
    If required, you can update this information later when you build the Docker image or when you push the image to the relevant repository.
    Target Image Tag Required. Give a tag name for the Docker image.
    Environment Variables You can enter multiple environment variables as key-value pairs.

  3. Optionally, click Next and configure Maven details for the Docker project.

  4. Click Finish. The Docker project is created in the project explorer.

  5. This step is only required if you already have a Docker image (in your local Docker repository) with the same name as the base image specified above.

    Info

    In this scenario, WSO2 Integration Studio will first check if there is a difference in the two images before pulling the image specified in the Base Image Repository field. If the given base image is more updated, the existing image will be overwritten by this new image. Therefore, if you are currently using an older version, or if you have custom changes in your existing image, they will be replaced.

    To avoid your existing custom/older images from being replaced, add the following property under dockerfile-maven-plugin -> executions -> execution -> configurations in the pom.xml file of your Docker Exporter project. This configuration will ensure that the base image will not be pulled when a Docker image already exists with the same name.

    <pullNewerImage>false</pullNewerImage>

The Docker project directory

Expand the Docker Exporter Project in the project explorer. See that the following folders and files are created:

Directory Description
Libs This folder stores libraries that should be copied to the Docker image. During the build time, the libraries inside this directory will be copied to the image.
Resources This folder stores additional files and resources that should be copied to the Docker image. During the build time, the resources inside this directory will be copied to the image.
deployment.toml The product configuration file.
Dockerfile The Dockerfile containing the build details.
pom.xml The file for selecting the relevant composite applications that should be included in the Docker image. This information is also used when you later build and push Docker images to the Docker registries.

Build Docker images

Info

Before you begin:

  • Create your integration artifacts in a Config project and package the artifacts in a Composite Application project. For example, see the HelloWorld sample given below.

    Integration artifacts for Docker

  • If you are using a Micro Integrator Docker image from a private registry as your base image:

    1. Open a terminal and use the following command to log in to Docker:
      docker login -u username -p password 
    2. In the next step, specify the name of the private Docker registry.

Follow the steps given below.

  1. Open the pom.xml file inside the Docker project and click Refresh on the top-right. Your composite application project with integration artifacts will be listed under Dependencies as follows:

    Docker Pom view

  2. Select the composite applications that you want to package inside the Docker image.

  3. If required, you can update the Target Repository to which the image should be pushed and the Target Tag.
  4. Save the POM file and click Build to start the Docker image build.
  5. It will build the Docker image based on the Dockerfile and the Target details. When the image is created, the following message will display.

    Docker Build Success

Top