Packages
A few sentences (a paragraph) describing the project.
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/gen_dockerfile.ex
defmodule Mix.Tasks.Aws.Gen.Dockerfile do
@moduledoc """
Generate a Dockerfile for the AWS Lambda runtime.
"""
use Mix.Task
@shortdoc "Generate a Dockerfile for the project"
def run(args \\ [])
def run(["help"]) do
"""
Generate a Dockerfile for the project.
"""
end
def run(args) do
name =
Mix.Project.config()
|> Keyword.fetch!(:app)
|> to_string
{opts, _, _} =
OptionParser.parse(args,
aliases: [
iex: :elixir,
iex_version: :elixir,
elixir_version: :elixir,
erl: :erlang,
erl_version: :erlang,
erlang_version: :erlang
],
strict: [elixir: :string, erlang: :string]
)
iex_version = Keyword.get(opts, :elixir, "1.13.1")
erl_version = Keyword.get(opts, :erlang, "24.3.2")
path = Application.app_dir(:aws_runtime, "lib/templates")
IO.inspect(path)
IO.inspect(File.ls!(path))
Mix.Generator.copy_template(Path.join(path, "dockerfile.eex"), "Dockerfile", app: name)
Mix.Generator.copy_template(Path.join(path, "base_dockerfile.eex"), "images/base.Dockerfile",
elixir_version: iex_version,
otp_version: erl_version
)
Mix.Generator.copy_file(".gitignore", ".dockerignore")
File.write!(".dockerignore", dockerignore(), [:append])
end
defp dockerignore do
"""
/.make/
/images/
Dockerfile
.dockerignore
.gitignore
Makefile
README.md
# IntelliJ files
/.idea/
\*.iml
"""
end
end