Getting Started With Skycap
What is Skycap?
Skycap is a container native CI/CD system. Using Skycap you can turn your source code into container (Docker) images automatically. There is nothing to install or download when using Skycap. All you need to your source code and a Cloud 66 account.
Skycap runs the CI/CD pipeline as a "stack". Each stack can contain an unlimited number of "services" that are built using Skycap. You can mix built services with pre-built images in a stack if some services in your application are using images from your own Docker image repository. Skycap doesn't do anything with these services but having them in the stack helps with describing your application better and more importantly it lets you deploy your whole application later using Maestro.
Overview & Prerequisites
Your Skycap stack can be composed of services that use pre-built images or source code you want to build into images. You can mix and match these as required.
Why have pre-built images?
You might ask what's the point of adding pre-built images to a CI/CD pipeline? Aren't we using Skycap to build images from code in the first place? Adding services with pre-built images to your stack is not needed for building your services, but it does 2 things:
- This way you describe your entire application under a stack.
- You can deploy this stack to your servers using Maestro later without any changes.
You can always add new services to a stack at a later time.
Pre-built Docker Images — Can be hosted in an image repo like Dockerhub or in your own private repository.
Build from Source — Your code should be hosted in a git repo and contain a Dockerfile located in the root directory. We provide basic Dockerfile templates for building common web frameworks that you can use to get started. If your Dockerfile is not in the root folder of your source code, you can specify the location or name in your service.yml configuration file using dockerfile_path element.
Lets create a new Docker project.
Adding Docker Services
Give the project a name, then you can add services. You can add as many services as required by clicking the green Add Another Service link at the bottom of the page.
Service provider drop-down
I'm using a GitHub Repo — This is the easiest way to add services from GitHub repos. You will need to link your GitHub account with Cloud 66 before you can take advantage of this. You can do this by clicking the Lets link with GitHub now link that will appear if you haven't signed up to Cloud 66 with GitHub.
I'm using a manual Git Repo — Use this option if you have a private git repo or you're using another git provider such as BitBucket. You can also choose this if you don't want to link Cloud 66 to your GitHub account. You will need to add and approve the Cloud 66 public key if your repo is private. You'll be prompted to do this if required.
It's a Docker Image — Use this to add pre-built images to a project. You can use a service like DockerHub or your own private image repo. If you're using a private repository you'll be prompted to add the necessary login credentials.
Once you've finished adding services click Start Build.
Build Process (BuildGrid)
BuildGrid is the Cloud 66 image building service that is used to build Docker images for your services directly from your git code repository.
During the build process, you can view the status of each individual image build and drill down into the logs if you need to troubleshoot any part of the process.
All of the information that defines how services are built is accessible from the service.yml file.