我将我的代码文件结构重构为cmd文件夹,因为我现在添加了一个worker,现在它具有以下结构:
所有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
我真的不明白这些文件和路径是什么意思所以我仍然无法解决我的问题 非常感谢你!
答案 0 :(得分:0)
答案是补充一下:
"heroku": {
"install": [
"./cmd/..."
]
},
到vendor / vendor.json :d