Create an issue with this checklist on the support team issue tracker with the Title: "Docker Bootcamp - your_name"
Tackle stage 1 first and the last stage last, but the others can be completed in any order you prefer.
### Stage 1: Commit and Become familiar with what Docker is 1. [ ] Ping your manager on the issue to notify them you have started. 1. [ ] Notify the current experts that they can start routing easier Docker questions to you. 1. [ ] Work through [GitLab University Docker](https://www.youtube.com/watch?v=ugOrCcbdHko). ### Stage 2: Theory (Expense non-free learning materials to GitLab) 1. [ ] Watch Unit 1 & 2 of [Scalable Microservices With Kubernetes](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615). 1. [ ] Read [Docker in practice, by Miell and Sayers](https://www.manning.com/books/docker-in-practice). 1. [ ] Watch the introductory [Play by Play: Docker for Web Developers course](https://www.pluralsight.com/courses/play-by-play-docker-web-developers-john-papa-dan-wahlin). 1. [ ] Watch the more complete [Docker for Web Developers course](https://www.pluralsight.com/courses/docker-web-development). 1. [ ] Read the docs for the [Docker Registry integrated into GitLab](https://docs.gitlab.com/ce/user/project/container_registry.html). 1. [ ] Read the docs for the [GitLab Docker Images](https://docs.gitlab.com/omnibus/docker/README.html) ### Stage 3: Practical - [ ] **Done with Stage 3** 1. [ ] Install Docker on your laptop. 1. [ ] On a Digital Ocean droplet, which you can create [here](https://gitlab.com/gitlab-com/environments) run the Just GitLab environment in [testlab](https://gitlab.com/gl-support/testlab). 1. [ ] Understand why there are no [host volumes](https://docs.docker.com/engine/tutorials/dockervolumes/) being mounted in the above setup, but when installing GitLab in production they are highly recommended. 1. [ ] Create a [Dockerfile](https://docs.docker.com/engine/reference/builder/) and build an image with it, which runs a web application that you otherwise would run on your local machine. 1. [ ] Set up a dev-tools image that has command-line dev tools configured to your personal preferences, set up and ready to use as soon as a container starts, if you don't have a preferred setup, have at least Vim with **ctrl + p** set up to find files, and Oh My Zshell to let you know which branch you are on when using Git. 1. [ ] Run Firefox inside a Gui container. It might be easier to borrow a Linux Laptop for this or run it in a VM. 1. [ ] Use [Docker Compose](https://docs.docker.com/compose/compose-file/) to bring up a [GitLab container](https://docs.gitlab.com/omnibus/docker/README.html#gitlab-docker-images) with [Postgres disabled in Omnibus](https://docs.gitlab.com/ce/administration/high_availability/gitlab.html), linked to a [Postgres container](https://hub.docker.com/_/postgres/) running the database. All configuration should be defined in the docker-compose.yml file so that GitLab is 100% operational after running `docker-compose up`. ### Stage 4: GitLab CI 1. [ ] Read the docs for the [Using Docker Images](https://docs.gitlab.com/ce/ci/docker/using_docker_images.html) with GitLab CI. 1 [ ] Read about [Docker in Docker](https://hub.docker.com/_/docker/) (dind). 1. [ ] Read the docs for building Docker images in GitLab CI with [Docker in Docker](https://docs.gitlab.com/ce/ci/docker/using_docker_build.html). 1. [ ] Get [GitLab CI to build a Docker image](https://docs.gitlab.com/ce/ci/docker/using_docker_build.html) and upload it to a GitLab registry. ### Stage 5: Tickets - [ ] Contribute valuable responses on at least 5 Docker tickets. Even if a ticket seems too advanced for you to answer. Find the answers from an expert and relay it to the customer. 1. [ ] __ 1. [ ] __ 1. [ ] __ 1. [ ] __ 1. [ ] __ ### Stage 6: Quiz? - [ ] Need link to Quiz here - [ ] Quiz answers were checked by Kamil, and he said you passed ### Final Stage - [ ] Your Manager needs to check this box to acknowledge that you finished - [ ] Send a MR to declare yourself a **Docker Expert** on the team page