Simple made easy.

Read this first

Building android project with Docker and Walter, independent from the specific platform

 Difficulty of building android project

I think it’s too complicated for me to building .apk file from some android project. When building android project on some CI system away from your Android studio, I always feel confused about “What package do I need to build this android project?”. For example,

  • What the type of android-sdk,build-tools, etc.. files does the project need?
  • Even if once the difficult settings were saved in Jenkins, Can you remember those settings and migrate them to other CI system (of course including local build) ?

 Build android project with Docker

During I suffered from building a android project, I found the cool project which uses docker for building .apk files. The Dockerfile inherits gfx/docker-android-project, which is installed dependent packages to a build android project. By building project inside Docker container, once you build a docker image

Continue reading →

Walter, a simple build pipeline tool

Today I announce Walter, a simple build pipeline tool with a collaborator @takahi_i.

Beriefly, Walter is a tiny tool for executing build pipelines (such as automated build workflows) in Continuous Integration / Delivery(CI / CD).

 Background of development

 Build pipeline settings heavily depends on Jenkins GUI

When managing a CI environment with Jenkins, we commonly use some sort of build pipeline plugins (ex. buildpipeline-plugin) to define deployment flows and execute the tasks in the flow one by one.

Although these Jenkins plugins are useful to manage and control CI, we still have some problems in the deployment of our services.

  • None of us is able to run build pipeline without our Jenkins server
  • No one is able to check if the pipeline works until starting the CI jobs in Jenkins server
  • We feel the difficulties to migrate the build pipeline settings to other CI environments

Continue reading →

Access Docker API from within container

Nowadays I’m contributing to pool project, which provides the simple http proxy launches docker container on access with commit-id of git repository, to be called even a “Just In Time Container”.

At first prototyping, pool provided the proxy service on vagrant VM. The proxy service kick-starts docker container by accessing Docker API, but it’s running on VM directly. So next I tried move the proxy service into docker container to separate it from docker host layer.

In this situation, How access docker api from within container? Finally I got this answer. It’s very simple solution(but may be dirty hack), that is sharing docker socket between container and host by running container with -v option.

For example, running container with -v option to share socket.

docker run -v /var/run/docker.sock:/var/run/dockerhost/docker.sock  --name inception -i -t centos /bin/bash`

Now, we can

Continue reading →