dockerfile创建器

[bsd3型,图书馆,未分类的][建议标签]

使用Haskell创建Dockerfiles的嵌入式DSL。请参阅GitHub上的自述文件https://github.com/hadolint/dockerfile-creator#自述文件


[跳到自述]

下载

维修人员角落

包装维护人员

对于包维护者和黑客托管者

候选人

  • 没有候选人
版本[RSS(RSS)] 0.1.0.0,0.1.1.0
依赖关系 基础(>=4.7 && <5),字节删除(>=0.10),数据默认类,自由的,语言装卸工(>=10.0.0),百万帕斯卡(>=8.0),mtl公司,template-haskell模板,文本,th-升,th-lift实例,时间[详细信息]
许可证 BSD-3条款
版权 2020年何塞·洛伦佐·罗德里格斯
作者 何塞·洛雷诺·罗德里格斯
维护人员 jose.zap@gmail.com
主页 https://github.com/hadolint/dockerfile-creator#自述文件
Bug跟踪器 https://github.com/hadolint/dockerfile-creator/issues
源回购 头部:git克隆https://github.com/hadolint/dockerfile-creator网站
已上传 通过洛伦佐2021-07-02T10:37:58Z
分配
下载 总计392人(过去30天内有6人)
额定值 (尚未投票)[估算人贝叶斯平均]
您的评分
  • λ
  • λ
  • λ
状态 可用文档[生成日志]
上次成功报告时间:2021-07-02[所有1个报告]

dockerfile-creator的自述文件-0.1.1.0

[返回包描述]

dockerfile创建器

使用Haskell和嵌入式DSL构建Dockerfiles。

打印精美的文件

导入语言。码头工人main=做右d<-parseFile“./Dockerfile”putStr(prettyPrint d)

用Haskell编写Dockerfiles

{-#LANGUAGE重载字符串#-}{-#LANGUAGE重载列表#-}导入语言。码头工人main=putDockerfileStr$do来自“节点”运行“apt-get update”运行[“apt-get”,“install”,“something”]-- ...

使用QuasiQuoter

{-#LANGUAGE重载字符串#-}{-#LANGUAGE准引号#-}导入语言。码头工人main=putDockerfileStr$do来自“节点”运行“apt-get update”[电子文档|RUN获取更新CMD节点something.js|]-- ...

在Haskell中模板化Dockerfiles

{-#语言灵活上下文#-}{-#LANGUAGE重载字符串#-}{-#LANGUAGE重载列表#-}进口管制。莫纳德导入语言。码头工人导入数据。字符串(fromString)导入合格数据。文本。懒惰。IO作为Ltags=[“7.8”,“7.10”,“8”]cabalSandboxBuild包名称=dolet cabalFile=packageName++“.cabal”运行“cabal sandbox init”运行“cabal update”添加[fromString cabalFile](fromString$“/app/”++cabalFile)运行“cabal install--only dep-j”添加“.”“/app/”运行“阴谋集团构建”主要的=对于M_标记$\tag->do让df=toDockerfileText$do来自(“haskell”`tagged`tag)cabalSandbox构建“mypackage”L.writeFile(“./examples/templating-”++标记++“.dockerfile”)df

在DSL中使用IO

默认情况下,DSL在身份莫纳德。通过运行IO,我们可以支持更多功能,如文件globbing:

{-#LANGUAGE重载字符串#-}{-#LANGUAGE重载列表#-}导入语言。码头工人导入合格的系统。目录作为目录导入合格的系统。文件路径作为文件路径导入合格的系统。文件路径。作为Glob的Glob导入数据。列表。非空(来自列表)导入合格数据。文本。懒惰。IO作为Lmain=做str<-toDockerfileTextIO$dofs<-liftIO$docwd<-目录.getCurrentDirectoryfs<-Glob.Glob“./test/*.hs”let relativeFiles=映射(FilePath.makeRelative cwd)fsreturn(来自列表relativeFiles)来自“ubuntu”将$(toSources fs)`复制到`“/app/”L.putStr街道