草庐IT

build-cache

全部标签

go - 为什么 'Open connection failed:sql: unknown driver "mssql“(忘记导入?)”会在 go build 中第一次发生?

我第一次跑https://github.com/denisenkom/go-mssqldb/blob/master/examples/simple.go我收到错误“打开连接失败:sql:未知驱动程序“mssql”(忘记导入?)”我通过更改解决了这个问题导入_“github.com/denisenkom/go-mssqldb”到导入“github.com/denisenkom/go-mssqldb”这给出了一个不同的错误“导入但未使用:“github.com/denisenkom/go-mssqldb”作为mssql”。但是......在改回import_"github.com/deni

git - 如何正确获取 go build 的返回码?

我想将gobuild添加到预提交Hook中,以免发布无法构建的代码。如果构建成功,我想继续提交,否则失败并拒绝提交。我该如何正确地做到这一点? 最佳答案 任何pre-commitHook都将由gitbash执行(即使在Windows上),因此您可以通过常规bash脚本编写脚本。参见GitHooksExitingnon-zerofromthishookabortsthecommit,althoughyoucanbypassitwithgitcommit--no-verify.#!/bin/bashset-egobuild(来自“Che

go - 如何确保 go build 使用 vendor 目录中的所有依赖项

我在vendor/目录中使用了godep和vendored我所有的依赖项。Gobuild也工作正常。但是,我如何确定我的所有依赖项都已出售?有什么命令可以确保这一点吗? 最佳答案 我的CI服务(Travis是我使用的服务)让我知道。因为如果deps不可用,我的测试构建将失败。无论如何,您都应该使用CI服务,然后您就可以免费获得该好处。 关于go-如何确保gobuild使用vendor目录中的所有依赖项,我们在StackOverflow上找到一个类似的问题: h

Golang 重映射接口(interface) go-cache

我有如下结构:typePagestruct{titlestringurlstring}和结构图:varmostViewed=make(map[int]Page)使用go-cache,我用TTL时间存储map。c.Set("data",mostViewed,60*time.Minute)但是,一旦我恢复了“数据”key,我如何才能将它返回给map呢?a,_:=c.Get("data")fmt.Printf("%+v\n",a)out:map[17:{title:xxx,url:yyy}]我试过类似的东西:z:=map[int]Page{a}有什么线索吗?这就像“重新映射”映射的字符串。

go - go build/run 执行时出错

我创建了一个简单的go脚本:https://gist.github.com/kbl/86ed3b2112eb80522949f0ce574a04e3它从互联网上获取一些xml,然后启动Xgoroutines。X取决于文件内容。在我的例子中,它是1700个协程。我的第一次执行结束于:$gorunmathandel1.go2018/01/2714:19:37Gethttps://www.boardgamegeek.com/xmlapi/boardgame/162152?pricehistory=1&stats=1:dialtcp72.233.16.130:443:socket:tooman

caching - channel 并发保证

我正在写一个并发安全的备忘录:packagemuimport("sync")//Funcrepresentsamemoizablefunction,operatingonastringkey,tousewithaMutypeFuncfunc(keystring)interface{}//Muisacachethatmemoizesresultsofanexpensivecomputation////Ithasatraditionalimplementationusingmutexes.typeMustruct{//guardsdonemusync.RWMutexdonemap[stri

docker - 通过 'revel build <testapp>' 的 run.sh 二进制文件未在 docker 容器内运行

因为我最近开始使用revel框架来构建goweb应用程序。我创建了一个测试应用程序(orpat),将其编译为“revelbuildorpatprod”并更改了confPORT->8084以发布该应用程序。生成的文件是-orpat(可执行文件11MB)运行.sh运行.bat源/文件夹它从其他位置在我的本地系统上执行良好(当然它安装了golang和revel)。http://localhost:8084我将构建文件复制到未安装golang的虚拟机中,它也在那里执行'./run.sh':在终端中运行此cmd足以使应用联机。下面是dockerfile->FROMgolang:1.10.4-al

git - 在 dockerfile 中的 go build 命令中注入(inject)或插入多个 ENV 变量

我正在使用dockerfile来构建go代码,并且我试图在-ldflags选项中传递3个选项。其中两个标志来自ENV变量,我必须通过字符串插值或连接将它们注入(inject)-ldflags内容,但我不知道如何。目标是在main.go的两个变量中注入(inject)gitrevisionhash和当前时间戳可以通过creatingafilefromdockerfile来完成使用“echo”命令,但我想确保使用简单的变量插值/连接是不可能的ENVGIT_REVISION$(gitrev-parse--shortHEAD)ENVCOMPILATION_TIMESTAMP$(date+%Y%

docker - 为什么 "go build"对我的 Docker 项目失败?

我有一个npm二进制文件,我想打包到Docker容器中。我有这样的配置:#DockerimagefortheMongoStitchcommandFROMgolang:alpine#DoasystemupdateRUNapkupdateRUNapkaddgit#DeclarebasedirWORKDIR/root#TheconsolebinaryforMongoStitchRUNgitclonehttps://github.com/10gen/stitch-cli.gitWORKDIR/root/stitch-cliRUNgobuildCMD["/bin/sh"]我收到这个错误:main

docker - 来自文件的 Google Cloud Build Docker build-arg

我在使用GoogleCloudBuild时遇到问题。我无法通过cloudbuild.yaml将key传递给docker谷歌构建文件.yaml:-name:'gcr.io/cloud-builders/gcloud'args:-kms-decrypt---ciphertext-file=A.enc---plaintext-file=/root/.ssh/id_rsa---location=global---keyring=keyringxxx---key=keyxxxvolumes:-name:'ssh'path:/root/.ssh-name:'gcr.io/cloud-builder