While Docker has enabled an unprecedented velocity of software production, it is all too easy to spin out of control. A promotion-based model is required to control and track the flow of Docker images as much as it is required for a traditional software development lifecycle. New tools often introduce new paradigms. We will examine the patterns and the antipatterns for Docker image management, and what impact the new tools have on the battle-proven paradigms of the software development lifecycle.
32. What’s up with the gates?!
- QA shouldn’t test dev images
33. What’s up with the gates?!
- QA shouldn’t test dev images
- non-tested images shouldn't be
staged
34. What’s up with the gates?!
- QA shouldn’t test dev images
- non-tested images shouldn't be
staged
- non-staged, non-tested or dev
images shouldn’t end up in
production!!!
39. How can we support this?
https://host:8081/artifactory/docker-dev/busybox
https://host:8081/artifactory/docker-staging/busybox
https://host:8081/artifactory/docker-qa/busybox
https://host:8081/artifactory/docker-prod/busybox
@JBARUCH #CODEMASH HTTP://JFROG.COM/SHOWNOTES
42. Virtual hosts/ports to the rescue
https://host:8081/artifactory/docker-dev/busybox
Context name
Virtual repository name
Tag name
https://host:port/v2/busybox
43. server {
listen 5001;
server_name 192.168.99.100;
if ($http_x_forwarded_proto = '') {
set $http_x_forwarded_proto $scheme;
}
rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/docker-dev/$1/$2;
…
}
}
@JBARUCH #CODEMASH HTTP://JFROG.COM/SHOWNOTES
44. But then you realize…
Wait a second, now I need
to pull, retag and push for
every step?!
45.
46.
47. Anatomy of a container
@JBARUCH #CODEMASH HTTP://JFROG.COM/SHOWNOTES