Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

executable file not found in $PATH #13

Open
hopewise opened this issue Feb 10, 2023 · 0 comments
Open

executable file not found in $PATH #13

hopewise opened this issue Feb 10, 2023 · 0 comments

Comments

@hopewise
Copy link

hopewise commented Feb 10, 2023

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 ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant