Skip to content

yoshuawuyts/wercker-docker-sample

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

wercker-docker-sample

wercker status

This is a sample app to demonstrate docker support on wercker.

What is docker?

Docker is an exciting open-source project to pack, ship and run any application as a lighthweight portable container. Developers and system administrators can author lightweight images that provide a pristine state that encapsulates an application.

Think of it as a way to pack your application as a virtual machine, without the overhead and performance penalty of the hypervisor.

If you want to learn more about docker, here is a list of resources we like:

Common scenario's

We are exited to see how docker will be used. In the conversations we've had with our users we distilled the following three scenarios:

  1. Testing a Dockerfile by building a container, start it and execute a serie of tests to validate the correctness of the provisioned container.

  2. Build a service and pack it into an image and deploy it to the docker registry.

  3. Pack software as part of a deployment pipeline and deploy it to an IaaS, such as Digital Ocean.

You can expect a series of blogposts that cover these scenarios in detail soon.

How to use docker on wercker

Your build and deployment pipeline is executed in a wercker box. A box is basically a virtual machine with a set of packages installed to support your stack of choice.

The box that has docker available is released under the wercker-labs account and can be used by setting the box element in your wercker.yml to wercker-labs/docker.

Here is an example that demonstrates a wercker.yml which echos the docker version from within the build pipeline:

box: wercker-labs/docker
build:
  steps:
    - script:
        name: Build the application
        code: |
          docker -v

A wercker environment is immutable and every build and deploy is executed in a clean environment. To speed up the build process of your docker containers we've added the following base images to wercker which you can leverage:

Please let us know if you need any other base images!

Other packages

The box runs ubuntu 13.04 (Raring Ringtail) and is packed with packages for all major development platforms including ruby, python, nodejs, php, openjdk, erlang and go. It also has development headers and clients installed for database services.

If you like to add extra packages, you can install them as part of your build or deployment pipeline with the install-packages step:

box: wercker-labs/docker
build:
  steps:
    - install-packages:
        packages: apache
    - script:
        name: Build the application
        code: |
          docker -v

If you think your packages should be part of the box, just let us know!

Caveats

Here is a list of the caveats. We will continue working on fixing these and the priority is based on the voice of our users.

  • wercker services are not supported.
  • You cannot inherit from the wercker-labs/docker box.
  • The number of packages installed is limited. Please us know if you miss any!

We are here to help!

As always, we are here to help your builds turn green and your software deployed. We're also looking forward to receive feedback. You can contact us by replying to this e-mail. You can request features or get support via uservoice.

What is next?

We will continue to work on our Docker support. You can expect a number of articles that will explain common use-case scenarios plus internals.

Earn some stickers!

Let us know about the applications you build with wercker. Don't forget to tweet out a screenshot of your first green build with #wercker and we'll send you some @wercker stickers.

Follow us on twitter as well to stay in the loop.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published