模块 EEx 不可用
module EEx is not available
我正在创建一个应用程序,当我 运行 它在本地运行时 运行 没问题。但是,当我 运行 它在 docker 容器中时,在 运行 期间我得到错误:
** (UndefinedFunctionError) function EEx.eval_string/2 is undefined (module EEx is not available)
我需要在 extra_applicatoins:
中指定 :eex
吗?如果可以,有人可以指出我的文档吗?我以为 Eex 和 Elixir 一起来了。
这是我的 mix.exs
文件:
# mix.exs
def application do
[
mod: {MyApp.Application, []},
extra_applications: [:logger]
]
end
defp deps do
[
{:tzdata, "~> 1.0.3"},
{:bamboo, "~> 1.5"}
]
end
Docker 文件:
FROM elixir:1.10 as build
ENV MIX_ENV=prod
ENV LANG=C.UTF-8
RUN mix local.hex --force && mix local.rebar --force
ARG LOG_LEVEL=info
RUN mkdir /build
WORKDIR /build
COPY . .
RUN mix deps.get && \
mix release --path /release && \
rm -rf /build
WORKDIR /release
ENTRYPOINT ["/release/bin/my_app"]
构建版本时,只有 elixir 内核被打包到(:elixir
应用程序中 OTP。)
:eex
、:mix
、:iex
和其他一些 extra 库都不包括在内。甚至 :ssl
和 :crypto
在本地开发环境中可用 are not included into release by default。目标是明确包含任何可能不需要的内容,以避免发布臃肿。
我不确定它是否明确记录在某处,但您可以查看参考资料 Phoenix.MixProject
,其中还包括 :eex
应用程序。
出于同样的原因,任何调用 Mix.env/0
(或任何其他 Mix
函数)的尝试都会以同样的方式在发布中失败。
我正在创建一个应用程序,当我 运行 它在本地运行时 运行 没问题。但是,当我 运行 它在 docker 容器中时,在 运行 期间我得到错误:
** (UndefinedFunctionError) function EEx.eval_string/2 is undefined (module EEx is not available)
我需要在 extra_applicatoins:
中指定 :eex
吗?如果可以,有人可以指出我的文档吗?我以为 Eex 和 Elixir 一起来了。
这是我的 mix.exs
文件:
# mix.exs
def application do
[
mod: {MyApp.Application, []},
extra_applications: [:logger]
]
end
defp deps do
[
{:tzdata, "~> 1.0.3"},
{:bamboo, "~> 1.5"}
]
end
Docker 文件:
FROM elixir:1.10 as build
ENV MIX_ENV=prod
ENV LANG=C.UTF-8
RUN mix local.hex --force && mix local.rebar --force
ARG LOG_LEVEL=info
RUN mkdir /build
WORKDIR /build
COPY . .
RUN mix deps.get && \
mix release --path /release && \
rm -rf /build
WORKDIR /release
ENTRYPOINT ["/release/bin/my_app"]
构建版本时,只有 elixir 内核被打包到(:elixir
应用程序中 OTP。)
:eex
、:mix
、:iex
和其他一些 extra 库都不包括在内。甚至 :ssl
和 :crypto
在本地开发环境中可用 are not included into release by default。目标是明确包含任何可能不需要的内容,以避免发布臃肿。
我不确定它是否明确记录在某处,但您可以查看参考资料 Phoenix.MixProject
,其中还包括 :eex
应用程序。
出于同样的原因,任何调用 Mix.env/0
(或任何其他 Mix
函数)的尝试都会以同样的方式在发布中失败。