我尝试在 docker-compose 服务中为我的 haskell RPC 服务器代码进行自动重建和 rexecute 设置。该命令是一个 bash 脚本stack build --file-watch(以及另一个在二进制文件更改时启动二进制文件的命令,但这有效)。问题是,无论我尝试什么,stack build --file-watch命令都会失败并出现一个神秘的错误<stdin>: hGetLine: end of file。
我不明白为什么会出现此错误,尤其是因为如果我使用 运行相同的命令docker-compose run bd-service bash -l -c "./bd-service/compile_hs_and_run.sh",它会按预期工作。我相信这是执行 docker-compose up 时如何处理 bash 的问题,而不是堆栈本身的问题,但我承认我一无所知。
另请注意:
这是服务定义:
# this is my service definition in docker-compose.yml
bd-service:
build:
context: '.'
dockerfile: 'dockerfiles/bd_heroku_service.Dockerfile'
args:
UID: "$UID"
command: bash -l -c "./bd-service/compile_hs_and_run.sh"
user: "$UID"
volumes:
- .:/app/user
Run Code Online (Sandbox Code Playgroud)
这是相关的 dockerfile:
# Inherit …Run Code Online (Sandbox Code Playgroud)