Docker Birthday #3 🎉 🎂 🎉

Birthday App Project

About the Birthday Party 🐋 ⛵

Training materials:

This year, to celebrate the Docker Project’s 3rd birthday, the Docker community is joining forces with a number of partners in the broader tech and open-source community to host a series of events focused on providing Docker training to beginners during the week of March 21-26.

⚠️ This document prepares you for the birthday party training before you actually attend. If you are already at the training, please go over to the Tutorial

Based on the feedback we’ve received from Docker meetup organizers, we learned that many meetup attendees are new to Docker and we want to make sure that we welcome them warmly into the Docker community. To ensure that these events are inclusive for everyone attending including underrepresented minorities, we’re happy to announce that we have teamed up with the following partners who’re actively contributing to organizing many Docker Birthday celebrations around the world:

Participants in the training will go through the steps involved in running and developing a simple voting app from a fresh computer using the Docker Toolbox. This simple app will include:

birthday3-app-architecture

  • A Python webapp: which lets you vote between several options
  • A Redis queue: which collects new votes
  • A Java worker: which consumes votes and stores them in…
  • A Postgres database: backed by a Docker volume
  • A Node.js webapp: which shows the results of the voting in real time

There will be a self-paced beginners’ tutorial for attendees to learn Docker basics as they build and deploy this app locally. Experienced Docker users will serve as mentors to help beginners successfully complete the training.

Pre-tutorial preparation

At the training, you will need to bring your own computer. Before you go to a birthday party training, there are some steps you should do some preparation to get your work environment ready. Here are the steps:

  1. For Linux users, we need you to install [Docker engine] (https://docs.docker.com/engine/installation/) and [Docker compose] (https://docs.docker.com/compose/install/). Make sure you have Docker compose version 1.6 or higher by executing

    docker-compose version

  2. For PC and Mac users we need you to install Docker toolbox for Mac and Windows and use [Docker Machine] (https://docs.docker.com/machine/get-started/) to create a virtual machine to run your Docker containers. Once your machine is created and you have connected your shell to this new machine, you're ready to run Docker commands on this host. If you're using Linux you can skip to the next step.

  3. If you're new to Docker, pre-pull the docker images for the very basic tutorial

    docker pull hello-world
    docker pull alpine
    docker pull seqvence/static-site
1. To run the application and participate in the rest of the training, pre-pull these images

   ```bash
   docker pull mhart/alpine-node
   docker pull python:2.7-alpine
   docker pull manomarks/worker
   docker pull redis:alpine
   docker pull postgres:9.4

And now you're ready. See you at the birthday party!

Docker Birthday #3 App Challenge

Once you finish the tutorial, we encourage you to continue hacking on the app!

All submissions are due by Monday, April 18th at 9am PST.

We’re running a challenge for the best hack to improve this app - the best hack wins a very special Docker swag package and complimentary pass to DockerCon 2016! The two runner-ups will receive an awesome Docker hoodie and all of these hacks will be featured in a blog post on blog.docker.com.

We encourage you to build a cool hack based on what you learned. Our advice is to be creative, make sure it’s useful and most importantly, have fun!

Here are some ideas the Docker team brainstormed:

For Devs:

  • Rewrite or add features to the following apps:
    • Python webapp which lets you vote between two options
    • Java worker which consumes votes and stores them
    • Node.js webapp which shows the results of the voting in real time
  • Write something to generate random votes so you can load test the app

For Ops:

In order to qualify for the prizes, you must follow these steps by Monday, April 18th at 9am PST:

  1. Submit your entry at bit.ly/1TLpxuK
  2. Submit your PR at github.com/docker/docker-birthday-3