README.md

# dockerize_elixir

This project installs docker files into a new elixir project that sets up a
development environment. The development environment includes a database and
automatically runs your tests. Included are helper scripts to let you run `iex`
and various database tasks inside the containers.

This should work with plain elixir apps that use ecto, and phoenix apps.

# Example

```
mix archive.install hex dockerize_elixir
mix dockerize my_app
docker compose up --build
```

# Assumptions

1. Assumes you're using ecto & PostgreSQL
2. Assumes you add (mix_test_watch)[https://github.com/lpil/mix-test.watch] to
   your project for running tests when files change

# To-do:

1. Generate a prod ready Dockerfile, and script to build a releasable docker
   container.
2. Support other databases. I don't really use anything except PostgreSQL, so I'd
   love PR's for this.
3. Support apps that don't use ecto or database.

# Gotchas

1. If you run this in a phoenix app that uses their asset building stuff, the
   assets won't build due to (#5890)[https://github.com/phoenixframework/phoenix/issues/5890]. You'll have to make the changes in (#5891)[https://github.com/phoenixframework/phoenix/pull/5891] to your generated config files.