Back to Dagger

Dagger

sdk/elixir/README.md

0.20.71.5 KB
Original Source

Warning This SDK is experimental. Please do not use it for anything mission-critical. Possible issues include:

  • Missing features
  • Stability issues
  • Performance issues
  • Lack of polish
  • Upcoming breaking changes
  • Incomplete or out-of-date documentation

Dagger

Dagger SDK for Elixir.

Installation

Fetch from repository by:

elixir
def deps do
  [
    {:dagger, github: "dagger/dagger", sparse: "sdk/elixir"}
  ]
end

Running

Let's write a code below into a script:

elixir
# ci.exs
client = Dagger.connect!()

{:ok, out} =
  client
  |> Dagger.Client.container([])
  |> Dagger.Container.from("hexpm/elixir:1.14.4-erlang-25.3-debian-buster-20230227-slim")
  |> Dagger.Container.with_exec(["elixir", "--version"])
  |> Dagger.Container.stdout()

IO.puts(out)

Dagger.close(client)

Then running with:

shell
$ elixir ci.exs

Where ci.exs contains Elixir script above.

Using with Dagger Function

The SDK support the Dagger Function by initiate it with:

shell
$ dagger init --sdk=elixir <name>

CAUTIONS: Please note that dagger version 0.11.6 and earlier are not compatible with the runtime on main branch. If you are using dagger v0.11.6, please pin the sdk to github.com/dagger/dagger/sdk/elixir/runtime@sdk/elixir/v0.11.6 instead.

The SDK will generate 2 modules inside the dagger directory (or the destination defined by --source during call dagger init):

  1. The dagger SDK itself.
  2. The package <name> that contains your functions.