Rob1
I came across this article about dockerizing a phoenix installation:
How to Run Your Phoenix Application with Docker)
But it is from around 5 years ago. In practice do most of you run Phoenix applications inside docker?
How do you do it?
Trending in Questions
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
Hello,
I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
So my question is quite simple and i have found no conclusive answer on forum, google or AI.
Should we use :erlang.float for Integer to ...
New
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New
Documentation
While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Aludel - LLM Evaluation Workbench
Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #ai
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 10- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
tfwright
I am a very big fan of managing dev environments in Docker. I actually don’t even have Elixir or Erlang installed locally. When I am working on a simple app, I will run tests on a local image (previously I used the hexpm images but I found there are some common additions that prevent me from needing a Dockerfile as often):
docker run -it -e MIX_HOME=/data -v "$(pwd)":/data -w /data tfwright/elixir-git:1.14 mix testFor more complicated apps, I use
composeto build and run everything. Here’s an example: live_admin/docker-compose.yml at main · tfwright/live_admin · GitHubarcanemachine
Phoenix has a generator that creates a pretty basic Dockerfile. I use it with some slight modifications.
I’ve also hacked together a version that allows for development but I basically never use it.
kwando
For everything in the “cloud” yes. On my loval raspberry pi I just run it directly
shanesveller
I like the homogeneity that targeting container orchestration gives, because I do not live in a world where one backend language is the norm. I have been a proponent of containerized deployment paradigm for around 8-9 years now. I wrote some of the earliest community coverage for the intersection of Kube / Elixir.
Container-wise, I find Kubernetes much preferable to e.g. Ansible, Nomad, ECS, Fargate, etc. for container orchestration. For me multi-host with horizontal scaling and fungible worker nodes is non-negotiable. Thus far I am never beholden to a shoestring budget so it’s pretty much always EKS + RDS, given my druthers.
If you have heard opinions that Kube obviates OTP or vice versa, IMO that’s somewhere between a misunderstanding and FUD. If you don’t believe me, maybe take the creator’s word for it.
I find people who lionize “I can run my entire app on a $10 VPS, so why on earth would I need containers” to be almost totally disconnected from my own professional values, requirements, and experiences.
In terms of Elixir-specific strategies, relatively little has changed materially about my tactics from a blog series I wrote in 2018. I write Kubernetes manifests in YAML, I use Kustomize for distinguishing logical environments like prod vs not-prod, I populate in-app config in
runtime.exsfrom env vars or less often from ConfigMaps, and I base the OCI image loosely on thephx.gen.release --dockertemplate someone else also mentioned.shanesveller
I find it rather difficult to justify paying a VM performance + battery tax for using containers very actively in development, especially on ARM Macs.
D4no0
K8s give you a lot of flexibility in terms of infrastructure, however a lot of times a single node application scaled vertically is much more easier to manage, not to mention that the performance will also be better, or at least until you reach that big application threshold.
I may be wrong and you could do as well vertical scalability with K8s easy, however from what I saw the idea is to use small and resource limited pods.
dimitarvp
I understand if your work requires more scale and you are used to k8s but I have found it an overkill for 98% of everything I ever did. Admittedly I very rarely worked on stuff that’s seriously huge though. That’s obviously a factor.
Distribution and orchestration are solved problems, people say. I say they are only theoretically solved and only “solved” in a very nitpicky technical sense. In practice they introduce huge overhead: raw CPU speed, need for dedicated and well-paid platform engineering teams, and others.
I’ll always prefer to buy a bare-metal server with 2TB RAM and clusters of enterprise NVMe SSDs and various redundancies compared to reaching for stuff like k8s.
I wanted to believe in k8s but it’s a Frankenstein that’s destroying people’s sanity. Whoever knows it intimately, good for them, for me though I want to get the job done this century without babysitting virtual Lovecraftian horrors until the end of time.
And don’t even get me started on YAML… if that’s the best this race can do then I’ll never miss commercial programming after I retire.
D4no0
I think this problem is solved on the same scale as concurrency is solved in 95% of programming languages, primitive to say at the least.
LostKobrakai
I think that take isn’t fair either. Sure you can buy all the solutions you can pay for. But to me solutions are only half of the question, figuring out what’s broken when the solution doesn’t work for some reason is the other. And that cost only goes up the more tech you stack on top of each other.
adw632
I will never be sold on Kubernetes. Containers sure, but Kubernetes and building and operating a cloud on the cloud and the engineering team to support it. No.
Ably provide an extremely scalable realtime messaging platform (with Erlang and elixir) with some very impressive SLAs (5x9s uptime guarantee), 350M active endpoints and huge burst headroom. They have an excellent article on why they don’t use Kubernetes. It’s very sound reasoning.
Some interesting points from the article:
On Kubernetes:
And from another Ably article on cloud scalability and cost:
And this is how you get the biggest cost savings, (hint: its not Kubernetes):
So if you’re hobby scale use VPS plans until you outgrow them, if you’re not google scale use don’t pretend to be google and drink the Kubernetes coolaid. Commit to a base capacity and keep the architecture simple, not dual layers of “cloud on cloud” management and save a huge margin over anything else you can possibly do on the operations side.