319 lines
10 KiB
Plaintext
319 lines
10 KiB
Plaintext
[1] Skip to Main Content
|
||
[2] Viget
|
||
|
||
• [3] Work
|
||
• [4] Services
|
||
• [5] Articles
|
||
• [6] Careers
|
||
• [7] Contact
|
||
• Open Menu
|
||
|
||
Navigation
|
||
|
||
[9] Viget Close
|
||
|
||
• Practice
|
||
• [11] Work
|
||
• [12] Services
|
||
• [13] Articles
|
||
|
||
We’re a full-service digital agency that’s been helping clients make lasting
|
||
change since 1999.
|
||
|
||
[14] Contact Us
|
||
|
||
People
|
||
|
||
• [15]Company
|
||
• [16]Careers
|
||
• [17]Code of Ethics
|
||
• [18]Diversity & Inclusion
|
||
|
||
More
|
||
|
||
• [19]Pointless Corp.
|
||
• [20]Explorations
|
||
• [21]Code at Viget
|
||
|
||
Featured
|
||
|
||
[22]
|
||
Read the Article: Building the Future, One Intern at a Time
|
||
|
||
Newsletter
|
||
|
||
Building the Future, One Intern at a Time
|
||
|
||
[23]
|
||
Read the Article: Some Thoughts after a Major Ruby on Rails Upgrade
|
||
|
||
Article
|
||
|
||
Some Thoughts after a Major Ruby on Rails Upgrade
|
||
|
||
Docker: Right for Us. Right for You?
|
||
|
||
[eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYW]
|
||
|
||
• [24]Home
|
||
• [25]Articles
|
||
• [26]Docker: Right for Us. Right for You?
|
||
|
||
[27] Subscribe (opens in a new window)
|
||
Share
|
||
|
||
• [29] Share this page
|
||
• [30] Share this page
|
||
• [31] Post this page
|
||
|
||
Eli Fatsi, Former Development Director
|
||
|
||
Article Categories: [32] #Code, [33] #Back-end Engineering, [34] #Tooling
|
||
|
||
Posted on March 29, 2021
|
||
|
||
• [35]
|
||
Share
|
||
• [36]
|
||
Share
|
||
• [37]
|
||
Post
|
||
|
||
Some reflections from our adventures in Docker
|
||
|
||
S o m e r e f l e c t i o n s f r o m o u r a d v e n t u r e s i n D o c k e r
|
||
|
||
Over the last two years, we've been using Docker more and more here at Viget.
|
||
We're a consulting agency so our developers are cycling on and off a wide
|
||
variety of projects, often times building and maintaining multiple distinct
|
||
platforms simultaneously. Docker has provided a handful of specific wins with
|
||
this setup, and brought with it a handful of it's own drawbacks:
|
||
|
||
Where Docker is Good [38]#
|
||
|
||
Running multiple versions of dependencies (eg: postgres)
|
||
|
||
This used to be a large pain every now and then, now it's not. What more can I
|
||
say except thank you, Docker.
|
||
|
||
New developers onboarding to a project
|
||
|
||
Now when people onboard to a project with a sprawling tech stack, they don't
|
||
have to become a local devops expert in order to configure their machine to run
|
||
the app locally. We can usually abstract the build and setup to a handful of
|
||
docker-compose calls and they're up and running.
|
||
|
||
Running non-standard dependencies uniformly on everyone's machine (eg: redis,
|
||
elasticsearch, background worker queues)
|
||
|
||
Similar to the problem of onboarding new people, onboarding new tech to a
|
||
running team can involve a lot of work if everyone has to update their stack to
|
||
accomodate the new tooling. Docker encapsulates a lot of the initial setup
|
||
complexity.
|
||
|
||
Where Docker is Frustrating [39]#
|
||
|
||
While Docker can make it quicker and easier to get complicated architectures
|
||
running on a number of developer (and non-developer) machines, it does so at a
|
||
cost. Docker adds an additional layer of infrastructure between you (the human)
|
||
and an application's runtime, which acts as a hurdle for a lot of standard
|
||
development tools and strategies.
|
||
|
||
For example, one of the first issues I ran into was seeing that my breakpoints
|
||
were suddenly unusable. When developing in a pure local environment, something
|
||
like binding.pry (Ruby) or breakpoint() (Python) will halt the code
|
||
mid-execution, and expose an interactive REPL for inspection. If you have a
|
||
Rails application running via a docker-compose.yml file, those breakpoints
|
||
hang, but there's shell to interact or continue with.
|
||
|
||
There is, of course, a solution to this issue (check out the follow on post to
|
||
this: [40]Docker + Rails), but it involves learning a bit about Docker and
|
||
using more than just the basic docker-compose build/up/down commands. Which
|
||
really seems to be the story for most problems we've hit: the solution is out
|
||
there, and the more you know about Docker / Docker Compose, the easier it is to
|
||
find it.
|
||
|
||
Summary [41]#
|
||
|
||
For the type of work we do at Viget, working on multiple projects across wildly
|
||
varying tech stacks, leaning on dependencies that range from cutting edge to
|
||
practically abandoned, Docker has brought our team way more upsides than it has
|
||
drawbacks.
|
||
|
||
I will mention that we haven't experimented with Docker in any of our
|
||
deployment / devops processes. I know this is another selling point for people
|
||
(bringing production / development environments closer together in behavior),
|
||
but we haven't found a use case for that that seems more appealing than our
|
||
current setup (primarily built on Terraform & Ansible).
|
||
|
||
Whether or not leaning on Docker is right for you is entirely dependent on the
|
||
kinds of projects you're running and what team you have working on them.
|
||
Something I can say with some certainty though is that Docker has the power to
|
||
hide a lot of local devops pain points, so if you and your team are drowning in
|
||
those, maybe give Docker a whirl.
|
||
|
||
Related Articles
|
||
|
||
• [42]
|
||
Some Thoughts after a Major Ruby on Rails Upgrade
|
||
|
||
Article
|
||
|
||
Some Thoughts after a Major Ruby on Rails Upgrade
|
||
|
||
Noah Over
|
||
|
||
• [43]
|
||
Setting up a Python Project Using asdf, PDM, and Ruff
|
||
|
||
Article
|
||
|
||
Setting up a Python Project Using asdf, PDM, and Ruff
|
||
|
||
Danny Brown
|
||
|
||
• [44]
|
||
Craft 5: What It Means For Super Table Page Builders
|
||
|
||
Article
|
||
|
||
Craft 5: What It Means For Super Table Page Builders
|
||
|
||
Max Myers
|
||
|
||
The Viget Newsletter
|
||
|
||
Nobody likes popups, so we waited until now to recommend our newsletter,
|
||
featuring thoughts, opinions, and tools for building a better digital world.
|
||
[45]Read the current issue.
|
||
|
||
[46]Subscribe Here (opens in new window)
|
||
|
||
Site Footer
|
||
|
||
Have an unsolvable problem or audacious idea?
|
||
|
||
Let’s get to work
|
||
|
||
[47] Contact Us [48] hello@viget.com [49] 703.891.0670
|
||
|
||
• Practice
|
||
• [50]Work
|
||
• [51]Services
|
||
• [52]Articles
|
||
|
||
• People
|
||
• [53]Company
|
||
• [54]Careers
|
||
• [55]Code of Ethics
|
||
• [56]Diversity & Inclusion
|
||
|
||
• More
|
||
• [57]Pointless Corp.
|
||
• [58]Explorations
|
||
• [59]Code at Viget
|
||
|
||
Sign Up For Our Newsletter
|
||
|
||
A curated periodical featuring thoughts, opinions, and tools for building a
|
||
better digital world.
|
||
|
||
[60] Check it out
|
||
|
||
Social Links
|
||
|
||
[61] Viget
|
||
|
||
• [62]
|
||
• [63]
|
||
• [64]
|
||
• [65]
|
||
• [66]
|
||
• [67]
|
||
|
||
Viget rhymes with 'dig it'. Click here to hear how we say it.
|
||
|
||
Office Locations
|
||
|
||
• [69]Washington, DC Metro
|
||
• [70]Durham, NC
|
||
• [71]Boulder, CO
|
||
• [72]Chattanooga, TN
|
||
|
||
© 1999 – 2024 Viget Labs, LLC. [73]Terms [74]Privacy [75]MRF
|
||
|
||
|
||
References:
|
||
|
||
[1] https://www.viget.com/articles/docker-right-for-us-right-for-you-1/#content
|
||
[2] https://www.viget.com/
|
||
[3] https://www.viget.com/work/
|
||
[4] https://www.viget.com/services/
|
||
[5] https://www.viget.com/articles/
|
||
[6] https://www.viget.com/careers/
|
||
[7] https://www.viget.com/contact/
|
||
[9] https://www.viget.com/
|
||
[11] https://www.viget.com/work/
|
||
[12] https://www.viget.com/services/
|
||
[13] https://www.viget.com/articles/
|
||
[14] https://www.viget.com/contact/
|
||
[15] https://www.viget.com/about/
|
||
[16] https://www.viget.com/careers/
|
||
[17] https://www.viget.com/code-of-ethics/
|
||
[18] https://www.viget.com/diversity-equity-and-inclusion/
|
||
[19] https://pointlesscorp.com/
|
||
[20] https://explorations.viget.com/
|
||
[21] https://code.viget.com/
|
||
[22] https://www.viget.com/newsletter/building-the-future-one-intern-at-a-time/
|
||
[23] https://www.viget.com/articles/some-thoughts-after-a-major-ruby-on-rails-upgrade/
|
||
[24] https://www.viget.com/
|
||
[25] https://www.viget.com/articles
|
||
[26] https://www.viget.com/articles/docker-right-for-us-right-for-you-1/#hero
|
||
[27] http://eepurl.com/gtHqsj
|
||
[29] https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.viget.com%2Farticles%2Fdocker-right-for-us-right-for-you-1%2F
|
||
[30] http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.viget.com%2Farticles%2Fdocker-right-for-us-right-for-you-1%2F
|
||
[31] https://x.com/intent/tweet?text=Some%20reflections%20from%20our%20adventures%20in%20Docker%20https%3A%2F%2Fwww.viget.com%2Farticles%2Fdocker-right-for-us-right-for-you-1%2F
|
||
[32] https://www.viget.com/articles/?category=code#results
|
||
[33] https://www.viget.com/articles/?category=back-end-engineering#results
|
||
[34] https://www.viget.com/articles/?category=tooling#results
|
||
[35] https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.viget.com%2Farticles%2Fdocker-right-for-us-right-for-you-1%2F
|
||
[36] http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.viget.com%2Farticles%2Fdocker-right-for-us-right-for-you-1%2F
|
||
[37] https://x.com/intent/tweet?text=Some%20reflections%20from%20our%20adventures%20in%20Docker%20https%3A%2F%2Fwww.viget.com%2Farticles%2Fdocker-right-for-us-right-for-you-1%2F
|
||
[38] https://www.viget.com/articles/docker-right-for-us-right-for-you-1/#where-docker-is-good
|
||
[39] https://www.viget.com/articles/docker-right-for-us-right-for-you-1/#where-docker-is-frustrating
|
||
[40] https://gist.github.com/efatsi/23b42c707ba39a6ae0926c1d1fc71749
|
||
[41] https://www.viget.com/articles/docker-right-for-us-right-for-you-1/#summary
|
||
[42] https://www.viget.com/articles/some-thoughts-after-a-major-ruby-on-rails-upgrade/
|
||
[43] https://www.viget.com/articles/setting-up-a-python-project-using-asdf-pdm-and-ruff/
|
||
[44] https://www.viget.com/articles/craft-5-what-it-means-for-super-table-page-builders/
|
||
[45] https://www.viget.com/newsletter
|
||
[46] http://eepurl.com/gtHqsj
|
||
[47] https://www.viget.com/contact/
|
||
[48] mailto:hello@viget.com?subject=Hello%2C%20Viget%21
|
||
[49] tel:7038910670
|
||
[50] https://www.viget.com/work/
|
||
[51] https://www.viget.com/services/
|
||
[52] https://www.viget.com/articles/
|
||
[53] https://www.viget.com/about/
|
||
[54] https://www.viget.com/careers/
|
||
[55] https://www.viget.com/code-of-ethics/
|
||
[56] https://www.viget.com/diversity-equity-and-inclusion/
|
||
[57] https://pointlesscorp.com/
|
||
[58] https://explorations.viget.com/
|
||
[59] https://code.viget.com/
|
||
[60] https://www.viget.com/newsletter/
|
||
[61] https://www.viget.com/
|
||
[62] http://x.com/viget
|
||
[63] https://github.com/vigetlabs
|
||
[64] https://dribbble.com/viget
|
||
[65] https://www.instagram.com/viget/
|
||
[66] https://www.linkedin.com/company/viget-labs
|
||
[67] https://vimeo.com/viget/collections
|
||
[69] https://www.viget.com/dc-metro-hq/
|
||
[70] https://www.viget.com/durham/
|
||
[71] https://www.viget.com/boulder/
|
||
[72] https://www.viget.com/chattanooga/
|
||
[73] https://www.viget.com/terms-conditions/
|
||
[74] https://www.viget.com/privacy-policy/
|
||
[75] https://individual.carefirst.com/individuals-families/mandates-policies/machine-readable-file.page
|