Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The DShell Pattern (DevOpsDays London 2019)
Search
David McKay
September 27, 2019
Technology
260
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The DShell Pattern (DevOpsDays London 2019)
David McKay
September 27, 2019
More Decks by David McKay
See All by David McKay
The Telegraf Toolbelt (InfluxDays SF, 2019)
rawkode
0
210
Cloud Native Telegraf - Cloud Native London (September 2019)
rawkode
0
120
Developing Your Own Flux Packages (InfluxDays London 2019)
rawkode
0
170
Introduction to Time Series (Software Circus, April 2019)
rawkode
0
180
Introduction to Time Series (Cloud Native Kraków, April 2019)
rawkode
0
130
Introduction to Time Series (Cloud Native Wales, April 2019)
rawkode
0
140
Introduction to InfluxDB 2.0 (Kubernetes London - February 2019)
rawkode
0
120
Kickass Development Environments with Docker (PHPBenelux 2019)
rawkode
0
160
LaraconEU 2018 - Kickass Development Environments with Docker
rawkode
2
370
Other Decks in Technology
See All in Technology
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
220
[2026 Oracle Technical Deep Dive] オンプレミスDBのCloud移行アプローチ:移行計画に基づくメソッドとツールの選択 (2026年9月17日開催)
oracle4engineer
PRO
0
130
Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤
kitagawaz
0
420
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
230
LLM機能を自作して分かるSnowflake Cortex AIの強み
nayuts
0
270
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
430
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
120
SDDの運用にめげずに向き合った話
sansantech
PRO
0
130
FinTech 1-2 : Overview of FinTech
ks91
PRO
0
140
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
380
Google Cloud Next Tokyo 26登壇時のスクリプト
recruitengineers
PRO
0
180
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
2
360
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
We Are The Robots
honzajavorek
0
380
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
560
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
Testing 201, or: Great Expectations
jmmastey
46
8.3k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
260
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
460
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
930
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
440
Transcript
The DShell Pattern DevOps Days London, 2019
David McKay ➔ Developer Advocate for InfluxData ➔ Kubernetes Release
Team ➔ Tweets @rawkode ★ Scottish ★ Lover of esoteric programming languages ★ Likes symmetry
BREAKING NEWS Some* developers don’t want to use Docker *
No developer with macOS wants to use Docker
Docker is useful Encapsulated Dependencies Documented Build Process Deployable
3 Components Dockerfile Docker Compose Makefile
Dockerfile Make it work for all environments
Dockerfile FROM elixir:1.9-alpine AS base FROM base AS development RUN
apk add --update vim git make FROM base AS build RUN make compile FROM base AS production COPY --from=build … ...
Docker Compose Make it as (more) painful as possible (than
normal)
dshell dshell: @docker-compose run \ --rm \ --service-ports \ --user
$UID \ --use-aliases \ --entrypoint=ash \ myapp
Encourage DShell Block Up service: myapp: entrypoint: sh command: echo
Publish Service Ports --service-ports Override Entrypoint --entrypoint=ash
UNPOPULAR OPINION DO NOT use compose syntax v3 in dev
Best Practice Use Depends On depends_on: mongodb: condition: service_healthy 12-Factor
env_file: .env env_file: - .env - .env.secret
Makefile Unify Developers
The Sausage .PHONY: dshell dclean up up: deps @mix run
--no-halt compile: deps @mix compile
up up: @npm run develop @mix test @FLASK_APP=hello flask run
dclean! dclean: @docker-compose down --rmi=local -v
Final API ❏ make dshell [host] ❏ make up [container]
❏ make test | deps | whatever [container] ❏ make dclean [host]
Better Together We’re deploying Docker to production (I hope), so
encourage (not force) it’s usage for local development; make it easy for people to dip their toe in.
VSCode Remotes { "dockerComposeFile": [ "../docker-compose.yml", ], "service": "node", }
Thank You ➔ Follow me on Twitter (@rawkode) ➔ At
the InfluxData booth (I’ve got badges and stickers) ➔ Come speak to me about InfluxDB, Cloud Native, Monitoring, Docker, or Kubernetes