为特定环境构建Heroku Docker镜像

4
当使用heroku.yml开发者预览(https://devcenter.heroku.com/articles/build-docker-images-heroku-yml),是否目前有指定docker构建上下文以及dockerfile的方式?
我想模拟的命令是:
docker build -f cmd/api/Dockerfile .

注意:我在此处为构建上下文提供了路径 .

目前,我能够成功运行以下内容:

build:
  docker:
    web: cmd/api/Dockerfile

或者,使用更明确的版本:
build:
  docker:
    web:
      dockerfile: cmd/api/Dockerfile

基于能够从多阶段构建中选择一个阶段的能力,我认为我也可以像在docker-compose中一样提供context作为构建的字段:

build:
  docker:
    web:
      dockerfile: cmd/api/Dockerfile
      context: .

然而,这会从Heroku返回以下错误响应:
remote: Building source:
remote: === Fetching app code
remote:
remote: =!= There were problems parsing your heroku.yml. We've detected the following issues:
remote:
remote: build.docker.web.context in body is a forbidden property
remote: Verifying deploy...
remote:
remote: !       Push rejected to docker-build-context-test.
remote:

这是一个已知的功能吗?我能够实现它吗?可能我需要发送一个功能请求,因为这个功能是开发者预览版,但感觉他们应该会包含这个功能。

希望你们有一些答案!

2个回答

5

抱歉之前没有接受这个。我几个小时后通过找到相同的文档链接解决了这个问题,然后完全忘记了它。虽然谢谢你的帮助,希望能为其他人节省一些烦恼! - syntaqx

1
作为一种解决方法,可以使用符号链接来引用您的Dockerfile:
ln -s  path/to/your/Dockerfile Dockerfile.heroku

使用

build:
  docker:
    web:
      dockerfile: Dockerfile.heroku

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接