executable file not found in $PATH

Open
#13 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
aws, docker, elixir
Domain
backend, cloud

Research direction

Start with the Lambda ENTRYPOINT value and compare it with the module and function shown in lib/ngspice_proxy.ex. Then inspect mix.exs and the Dockerfile, and run the image or deployment flow; done means the browser invocation reaches hello_world without Runtime.InvalidEntrypoint.

Written by the indexing model from the issue text.

Description

I am getting this error when trying to view it in the browser:

RequestId: 3f848f5e-4cb4-4820-aa55-fef28313dfd5 Error: exec: "Elixir.NgspiceProxy:hello_world": executable file not found in $PATH
Runtime.InvalidEntrypoint

At Lambda setup:

ENTRYPOINT override
Elixir.NgspiceProxy:hello_world

here is my entrypoint: lib/ngspice_proxy.ex

defmodule NgspiceProxy do
  @moduledoc """
  Entrypoint for my hello world Lambda function.
  """

  require Logger

  @doc """
  The lambda entrypoint is just a public function in a module which accepts
  two maps.
  The returned term will be passed to Poison for Json Encoding.
  """
  @spec hello_world(Map.t(), Map.t()) :: Term
  def hello_world(request, context) when is_map(request) and is_map(context) do
    """
    Hello World!
    Got reqeust #{Kernel.inspect(request)}
    Got Context #{Kernel.inspect(context)}
    """
    |> Logger.info()

    :ok
  end
end

mix.exs

defmodule NgspiceProxy.MixProject do
  use Mix.Project

  def project do
    [
      app: :ngspice_proxy,
      version: "0.1.0",
      elixir: "~> 1.5",
      elixirc_paths: elixirc_paths(Mix.env()),
      compilers: [:phoenix, :gettext] ++ Mix.compilers(),
      start_permanent: Mix.env() == :prod,
      aliases: aliases(),
      deps: deps()
    ]
  end


  def application do
    [
      mod: {NgspiceProxy.Application, []},
      extra_applications: [:logger, :runtime_tools, :edeliver],

    ]
  end

  defp deps do
    [
      {:aws_lambda_elixir_runtime, "~> 0.1.0"},
      {:phoenix, "~> 1.4.7"},
      {:phoenix_pubsub, "~> 1.1"},
      {:phoenix_html, "~> 2.11"},
      {:phoenix_live_reload, "~> 1.2", only: :dev},
      {:gettext, "~> 0.11"},
      {:jason, "~> 1.0"},
      {:plug_cowboy, "~> 2.0"},
      {:temp, "~> 0.4"},
      {:cortex, "~> 0.1", only: [:dev, :test]},
      {:edeliver, ">= 1.6.0"},
      {:distillery, "~> 2.1.1"},
      {:mix_deploy, "~> 0.1.0"},
      {:rename, "~> 0.1.0", only: :dev}
    ]
  end

  defp aliases do
    [
      "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
      "ecto.reset": ["ecto.drop", "ecto.setup"],
      test: ["ecto.create --quiet", "ecto.migrate", "test"]
    ]
  end
end

Dockerfile

FROM elixir:1.6.6-otp-21 as build
RUN apt-get update
RUN apt-get install -y inotify-tools

WORKDIR /app
COPY . /app
RUN mix local.hex --force
RUN mix local.rebar --force
RUN mix deps.get

RUN mix compile.phoenix

FROM elixir:1.6.6-otp-21-alpine as final
RUN apk update && apk add inotify-tools

WORKDIR /app
COPY --from=build /app .
COPY --from=build /usr/bin/ngspice /usr/bin/ngspice

ENV PATH="${PATH}:/app"

EXPOSE 8080

CMD ["mix", "phx.server"]

Any idea ?

Dominant language
Elixir
Stars
129
Forks
31
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from aws-samples/aws-lambda-elixir-runtime

All issues in aws-samples/aws-lambda-elixir-runtime

Similar issues

More Elixir issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.