rebar eunit 在 erlang:latest docker 容器中找不到包含库

rebar eunit can't find include lib in erlang:latest docker container

我是 docker 和 erlang 的新手。我已经在我的 windows 机器上安装了 docker 和 VSCode,我想学习在容器中开发 erlang,所以我创建了 Dockerfile:

FROM erlang:latest

WORKDIR /project

COPY . .

和 .devcontainer 目录 devcontainer.json 文件:

{
    "name": "Erlang dev container",
    "context": ".",
    "dockerFile": "Dockerfile",
    "settings": { 
        "terminal.integrated.shell.linux": "/bin/bash"
    },
    "extensions": []
}

在容器中打开我的项目文件夹后,我可以发出 bash 命令并且可以启动 erl 但是当我尝试让 rebar 使用

测试我的代码时
rebar eunit

rebar3 eunit

我收到错误:

can't find include lib "eunit/lib/eunit.hrl"

我做错了什么? erlang:latest 图像应该用于 erlang 开发吗?如何解决?

为了使用eunit,当我在shell中运行 erlang程序时(不使用docker),我使用下面的-include_lib指令:

-include_lib("eunit/include/eunit.hrl").

您似乎使用了不同的路径:

 eunit/lib/eunit.hrl

in container I can issue bash commands

然后使用bash命令搜索文件eunit.hrl

您可以随时复制文件 eunit.hrl 并将其放入 rebar 项目的 src 目录中,然后在您的模块中使用:

-include("eunit.hrl")

I'm new to docker and erlang.

如果发生最坏的情况,请不要担心 eunit。在您需要一个测试框架之前,有很多关于 erlang 的知识。