#docker #erlang #eunit
#docker #erlang #eunit
Вопрос:
Я новичок в docker и erlang. Я установил docker и VSCode на свой компьютер с Windows, и я хочу научиться разрабатывать 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 image для разработки erlang? Как это исправить?
Ответ №1:
Для использования eunit
, когда я запускаю программы erlang в оболочке (не используя docker), я использую следующую -include_lib
директиву:
-include_lib("eunit/include/eunit.hrl").
Похоже, вы используете другой путь:
eunit/lib/eunit.hrl
в контейнере я могу выдавать команды bash
Затем используйте команды bash для поиска файла eunit.hrl
.
Вы всегда можете просто скопировать файл eunit.hrl и поместить его в src
каталог вашего проекта rebar, а затем использовать в своем модуле:
-include("eunit.hrl")
Я новичок в docker и erlang.
В худшем случае не беспокойтесь о eunit. О erlang нужно многое узнать, прежде чем вам понадобится платформа тестирования.
Комментарии:
1. Большое спасибо за вашу помощь, вот и все, eunit / lib / eunit. hrl вместо eunit/include/eunit.hrl, теперь мои тесты прошли!