只需一条命令即可将 Docker 添加到 Elixir/Phoenix 项目
由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!
最近我一直在写大量的 Elixir 代码,包括一些 Phoenix 网站和其他一些小型 Elixir 应用。每次创建新项目时,我都会遇到一个困扰:要么一开始就想添加 Docker,因为我知道项目会依赖 Redis 或 Postgres 等服务;要么在项目进行到一半时才想添加,但这会大大降低我快速开发的速度。
我喜欢 Elixir 的一点是,它能让你快速上手编写应用程序,无论是 Web 应用还是拥有庞大管理树的复杂应用。
总之,我发现自己会回到以前使用 Docker 的项目,只需复制一些必要的文件就能重新开始,并沿用我熟悉的工作流程。
exdocker
所以我决定尝试用 Elixir 命令行应用(Escript)来解决这个问题。它其实功能不多,只是写入一些文件并进行一些字符串替换,以简化 Docker 的配置。
我把它命名为exdocker,因为我的创意不如以前了。
安装
请确保~/.mix/escripts已将其添加到您的计算机配置文件中$PATH。您可以通过将其添加export PATH=~/.mix/escripts:$PATH到您的配置.bashrc文件或类似文件中来实现这一点。
mix escript.install hex ex_dockersource ~/.bashrc- 加载 escript 并$PATH更新
用法
- 创建一个新的 Elixir 项目
mix phx.new my_projectexdocker my_project - 将其添加到现有的 Elixir 项目中
exdocker my_project,或exdocker .在当前目录中运行。
项目根目录下会创建三个文件:
- docker-compose.yml - Docker 容器的配置
- Dockerfile - 指定 Elixir/Phoenix 运行需要安装哪些组件
- Makefile - 方便的 docker-compose 命令目标
然后,您可以从 root 用户运行 make init shell 来构建和运行 Docker 容器,当此命令完成后,您将进入一个安装了 Elixir 和 Mix 的 shell 会话,以便您可以像往常一样继续开发。
其他任何时候需要使用它,都可以使用以下命令执行exdocker。
如果您觉得这篇文章有用,请务必告诉我!
文章来源:https://dev.to/jackmarchant/add-docker-to-elixirphoenix-projects-in-one-command-1hji