加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用Docker容器中的1.10构建缓存加速Go构建

发布时间:2020-12-16 03:37:37 所属栏目:安全 来源:网络整理
导读:我有一个带有大型供应商/目录的Go项目,几乎从未改变过. 我正在尝试使用新的go 1.10构建缓存功能来加速我在本地Docker引擎中的构建. 避免重新编译我的供应商/目录就足够了.所以我正在尝试将Go等效于Python的这种常见Dockerfile模式: FROM pythonCOPY require

我有一个带有大型供应商/目录的Go项目,几乎从未改变过.

我正在尝试使用新的go 1.10构建缓存功能来加速我在本地Docker引擎中的构建.

避免重新编译我的供应商/目录就足够了.所以我正在尝试将Go等效于Python的这种常见Dockerfile模式:

FROM python
COPY requirements.txt .              # <-- copy your dependency list
RUN pip install -r requirements.txt  # <-- install dependencies
COPY ./src ...                       # <-- your actual code (everything above is cached)

同样我试过:

FROM golang:1.10-alpine
COPY ./vendor ./src/myproject/vendor
RUN go build -v myproject/vendor/... # <-- pre-build & cache "vendor/"
COPY . ./src/myproject

然而,这是“无法找到包”错误(可能是因为您无法在供应商/直接正常构建东西).

有没有人能够解决这个问题?

最佳答案
这是适合我的东西:

FROM golang:1.10-alpine
WORKDIR /usr/local/go/src/github.com/myorg/myproject/
COPY vendor vendor
RUN find vendor -maxdepth 2 -mindepth 2 -type d -exec sh -c 'go install -i github.com/myorg/myproject/{}/... || true' ;
COPY main.go .
RUN go build main.go

它确保首先安装出售的库.只要你不改变图书馆,你就是好的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读