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 的知识。
我是 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 的知识。