Pipelines for Applications

When integrating Pipelines for Applications deployments with other third-party CI systems, there may be a desire to build Docker images with this CI system, but have Pipelines for Applications facilitate auto-deploy of these images as running Docker containers. This is possible with a few steps.

Create an application

First, an application will need to be created in Pipelins for Applications. This application “can be” or “not be” connected to a software repository, but it MUST be connected to a Docker registry. Please follow the appropriate instructions here.

Prepare distelli-manifest.yml

Next a distelli-manifest.yml file must be created. This file will contain a minimum PkgInclude section, and the instructions to deploy your container. Here is an example.

jdoe/myapp1:
  PkgInclude:
    - <b>distelli_jenkins_env.sh</b>
  Exec:
    - <b>source distelli_jenkins_env.sh</b>
    - cid=$(uuidgen)
    - trap 'sudo docker stop $cid' SIGTERM
    - echo "sudo -E docker run --name=$cid $DISTELLI_DOCKER_ENVS --rm=true $DISTELLI_DOCKER_PORTS  $DISTELLI_DOCKER_REPO:$DISTELLI_BUILDNUM"
    - (sudo -E docker run --name=$cid $DISTELLI_DOCKER_ENVS --rm=true $DISTELLI_DOCKER_PORTS  "$DISTELLI_DOCKER_REPO:$DISTELLI_BUILDNUM") &
    - wait
    - "true"

This file must be created and available during the Docker build process. Typically this file is checked into the root of the software repository that builds the Docker container.

Build the image and do the distelli push

Finally, the steps that are either taken from the command line, or with a third-party CI system, consist of the following. (Imagine this as part of a Jenkins build shell script.)

docker login
docker build -t DOCKERREPO/DOCKERIMAGE
docker tag DOCKERREPO/DOCKERIMAGE DOCKERREPO/DOCKERIMAGE:DOCKERTAG
docker push DOCKERREPO/DOCKERIMAGE:DOCKERTAG
echo "export DISTELLI_DOCKER_REPO=$DOCKERREPO/$DOCKERIMAGE" > distelli_jenkins_envs.sh
echo "export DISTELLI_BUILDNUM=$DOCKERTAG" >> distelli_jenkins_envs.sh
distelli push

With the above, the following values will have to be specified or manually supplied:

  • DOCKERREPO - The Docker repository identifier. If you're using a free DockerHub repository, this would be your DockerHub username.
  • DOCKERIMAGE - The Docker repository image name.
  • DOCKERTAG - The unique tag identifier. If not using unique tags, use "latest".

When doing the distelli push, the Pipelines CLI will consult the distelli-manifest.yml file to create an application release, which will include the deploy instructions from the distelli-manifest.yml file and the distelli_jenkins_env.sh file created earlier.

Note: The above assumes the Distelli CLI is installed on the system that is building the docker image and pushing to Distelli. For more information see: Installing the Distelli CLI.

Back to top
The page rank or the 1 our of 5 rating a user has given the page.
The email address of the user submitting feedback.
The URL of the page being ranked/rated.