我正在尝试使用docker compose将一些haskell服务绑定在一起进行本地开发。大部分时间我都在stack ghci
中乱搞,运行单元测试等,但我还需要能够运行遇到依赖的代码。 Docker compose非常适合:我可以运行依赖项(数据库,其他服务等),并将所有内容链接在一起。
Stack支持docker。它可以在docker: enable: true
的docker容器中构建,也可以使用stack image container
创建可执行映像。
如何在docker-compose.yml
内利用堆栈的泊坞窗功能?
version: "3"
services:
my-service:
# how can I use `stack image container` here? Is it possible?
build: '.'
links:
- other-service
env_file:
- test.env
other-service:
image: other-service-image
我是否必须制作自己的Dockerfile,或者是否有某种方法可以使用stack image container
功能?
后续问题:是否有某种方法可以使用docker compose文件中的所有设置(环境,链接等)运行stack ghci
?
答案 0 :(得分:1)
这只回答你的后续问题(在docker中堆栈ghci)。是的,这是可能的。
根据您的服务/容器的名称(您可以使用docker ps
确定):
如果您的容器已在运行(通过docker-compose up
/ docker run
):
docker exec -it directoryName_my-service_1 /bin/stack ghci