Docker 模块EEx不可用
我正在创建一个应用程序,当我在本地运行它时,一切正常。但是,当我在docker容器中运行它时,在运行时会出现以下错误: **(UndefinedFunctionError)函数EEx.eval_string/2未定义(模块EEx不可用) 是否需要在Docker 模块EEx不可用,docker,elixir,elixir-mix,Docker,Elixir,Elixir Mix,我正在创建一个应用程序,当我在本地运行它时,一切正常。但是,当我在docker容器中运行它时,在运行时会出现以下错误: **(UndefinedFunctionError)函数EEx.eval_string/2未定义(模块EEx不可用) 是否需要在附加应用程序内指定:eex?如果有的话,有人能给我指一下这方面的文档吗?我以为Eex是带着长生不老药来的 这是我的mix.exs文件: # mix.exs def application do [ mod: {MyApp.Ap
附加应用程序内指定:eex
?如果有的话,有人能给我指一下这方面的文档吗?我以为Eex是带着长生不老药来的
这是我的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
Dockerfile:
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"]
在构建发行版时,只有核心被打包在OTP中(:elixir
应用程序)
既不包括:eex
,也不包括:mix
,:iex
,以及其他一些额外的库。甚至:ssl
和:crypto
也可以在本地开发环境中使用。我们的目标是明确地包含任何可能不需要的内容,以避免过于臃肿的发布
我不确定它是否有明确的文档记录,但您可以检查是否有包含:eex
应用程序的引用
出于同样的原因,任何调用Mix.env/0
(或任何其他Mix
函数)的尝试都会以同样的方式在发布中失败