将Go app部署到heroku错误

时间:2017-05-05 17:01:13

标签: heroku go makefile

我将我的代码文件结构重构为cmd文件夹,因为我现在添加了一个worker,现在它具有以下结构:

enter image description here

所有go文件都在文件夹内,所以为了在本地安装它我使用' make install ',我配置为去安装每个包。 但是,当我尝试推送到Heroku时,它只是运行 go install ,因此我收到错误:

  

正在运行:去安装-v -tags heroku。无法加载包:包   github.com/heroku/secretly-sender:没有可构建的Go源文件   /tmp/tmp.pTW8NahxGm/.go/src/github.com/heroku/secretly-sender

我该如何解决这个问题? 这是我的其他文件

Procfile:

FROM alpine:latest

WORKDIR "/opt"

ADD .docker_build/secretly-sender /opt/bin/secretly-sender/cmd
ADD ./templates /opt/templates
ADD ./static /opt/static

CMD ["/opt/bin/secretly-sender/cmd"]

Dockerfile:

GO_BUILD_ENV := GOOS=linux GOARCH=amd64
DOCKER_BUILD=$(shell pwd)/.docker_build
DOCKER_CMD=$(DOCKER_BUILD)/secretly-sender/cmd

$(DOCKER_CMD): clean
    mkdir -p $(DOCKER_BUILD)
    $(GO_BUILD_ENV) go build -v -o $(DOCKER_CMD) .

clean:
    rm -rf $(DOCKER_BUILD)

heroku: $(DOCKER_CMD)
    heroku container:push web
    heroku container:push worker

install:
    go install github.com/heroku/secretly-sender/cmd/secretly-sender-web
    go install github.com/heroku/secretly-sender/cmd/secretly-sender-worker
    go install github.com/heroku/secretly-sender/shared

build:
    go build github.com/heroku/secretly-sender/cmd/secretly-sender-web
    go build github.com/heroku/secretly-sender/cmd/secretly-sender-worker
    go build github.com/heroku/secretly-sender/shared

生成文件

DATEPART

我真的不明白这些文件和路径是什么意思所以我仍然无法解决我的问题 非常感谢你!

1 个答案:

答案 0 :(得分:0)

答案是补充一下:

"heroku": {
    "install": [
        "./cmd/..."
    ]
},

到vendor / vendor.json :d