Docker ~01 Docker and Raspberry Pi

Today I tried to install Docker on my Raspberry Pi 3 board to check how it will work, just for testing purpose. And you know what? It works very nice. First of all, I install Raspbinan Jessie Lite on SD card. For this point, I log in on a fresh installation and make the system update. After update list of repositories, I made the update of the whole raspberry:

Next step is to install Docker directly from the Docker website for ARM architecture.

This process will take a few minutes. After installation finished we will see the latest installation of Docker and that is running on ARM architecture:

Installation process suggests us to use user pi and add them to docker group. This will allow us to run docker command without using the sudo command.

To check that Docker demons are running we can use: sudo docker info

As you can see docker demons are running. After running classic: sudo docker run hello-world docker can’t find hello version:

The container didn’t start. This problem appears due to incompatible between two architectures: ARM and x86. To solve this problem the best way is to find Docker image that can be run on ARM architecture. So how can we find this image?

The best way is to find an image on Docker Hub. Searching for: ARM or RPI.

Another way is use Docker build to build our own Docker images for Raspberry. To create simple Dockerfile we must create the build directory, and in this folder placed Dockerfile that in my case contains:

To run Docker build: sudo docker build -t /rpi-java8 .
The build will take a while. After finish, we can check by using: sudo docker images. This will list:

To run created Docker image we can use: sudo docker run -it /rpi-java8. But this displayed all options for java because I didn’t specify anything. After adding some variables like: java -version we can see:

Continuous integration services – review

For few day I was looking for some continuous integration services that will allow me to build and deploy my open source projects now and near feature. I spend several hours searching, reading, trying to use and build some code. Some CI services are for free and works very good with for example GitHub. It’s a big plus, especially when you trying to run open source.

Below I add a small table that contains some essential information for devs that are interested in that kind of services.

NameDescriptionFeaturesSupported repositoriesDocumentationPrice
AppveyorAppVeyor automates building, testing and deployment of .NET applications.• GitHub
• BitBucket
documentationFree with limitations
AssertibleAutomated post-deployment testing and web service monitoring• GitHubdocumentationFree with limitations
BitriseiOS Continuous Integration and Delivery.• GitHub
• BitBucket
• Custom
documentationFree
BuildkiteA build automation platform which gives you complete control, without the pain of running your own CI system.Languages: Ruby, Python, Node.js, JavaScript, PHP, Go, Rust, Erlang, Elixir, Java, Clojure, Scala, C/C++, Objective-C, Swift, .NET/C#
Source code is available: Buildkite Agent
• GitHub
• BitBucket
• Custom
documentation• 14-day Trial
• Free for Education
• Open Source
Circle CIContinuous Integration and Deployment• GitHubdocumentationPricing
CodeshipOne more cloud based CI service: running tests and deployment.• GitHub
• BitBucket
documentationFree for opensource projects or 100 builds per month
Code ClimateHosted platform to continuously measure and monitor code quality Languages: Ruby, Javascript, PHP• GitHub
• Custom
documentation14-day Trial
Coveralls Coveralls works with your continuous integration server to give you test coverage history and statistics.Languages: Ruby, Javascript, Python, PHP, C, Objective-C, Scala, GO• GitHub
• BitBucket
documentationFree for opensource projects
CoverityCode analysis, test analysisLanguages: C/C++, Java, C#noneFree for opensource projects
CoviolationsTool for collecting and visualisation code violations works with Travis-CI, drone.io and JenkinsSource code is available: Web application, Applicationdocumentation
DroneContinuous Integration serviceSource code is available.• GitHub
• BitBucket
• Google Code
• Custom
documentationPublic projects for free
FactorService to automate developer workflows by defining them programmatically using the Factor.io syntax and running them using the Factor.io Server.documentation
GitLab CI• GitLabdocumentationPricing
GitHost• GitLabdocumentationPricing
Hound CIReview your JavaScript, CoffeeScript, and Ruby code for style guide violations with a trusty hound.• GitLabnonePublic repositories for free
Magnum CIHosted Continuous Integration and Delivery Platform• GitHub
• BitBucket
• GitLab
• Custom
documentationFree beta
PHP CIFree and open source continuous integration tool specifically designed for PHPLanguage: PHP, Source code is available• BitBucket
• GitLab
• Custom
nonePricing
SaucelabsAutomated testing in the cloud for CIdocumentation14-day Trial
ScrutinizerBuild quality software, betterSources are available• GitHub
• BitBucket
documentation14-day Trial
SemaphoreHosted continuous integration and delivery solution for open source and private projects.Ruby, Node.js, JavaScript, Go, Clojure, Elixir, Erlang, Java, PHP, Scala, C/C++• GitHub
• BitBucket
documentationFree for Open Source, 100 free builds for private projects
ShippableContinuous DeliveryLanguages: Ruby, Python, Java, Node.js, Scala, PHP, Go; Databases: MongoDB, MySQL, Redis, Postgres, CouchDB, RethinkDB, Neo4j, and SQLite• GitHub
• BitBucket
• GitLab
documentationFree with limitations
Snap• GitHubdocumentationFree
Solano CIHosted service that runs your test suite on a distributed infrastructure - fast• GitHub
• BitBucket
• GitLab
• Custom
documentation14-day Trial
StyleCIThe PHP Coding Style Service, used by Cachet.• GitHubdocumentationFree for opensource projects
TestlingHosted service that runs your test suite in many different browsers every time you push to GitHub. It can run any test suite so long as it writes TAP to the browser console.documentationFree for opensource projects and 3 min sessions
Travis CIHosted continuous integration service for open source and private projects.Languages: C, C++, Clojure, Erlang, Go, Groovy, Haskell, Java, Javascript (with Node.js), Objective-C, Perl, PHP, Python, Ruby, Rust, Scala. Source code is available.• GitHubdocumentationFree for opensource projects and 3 min sessions
Visual Studio Online Cloud-based collaboration services for version control, agile planning, continuous delivery, and analytics application for Visual Studio, Eclipse, Xcode.• Visual Studio
• Team Services
• GitHub
• Custom
documentationFree
WerkerContinuous delivery platform• Docker Hubdocumentation