当我执行以下操作时,我可以获得所有依赖包:
if(sum < ilm_selected || sum==''){
//some code
}
但是在docker中执行此操作的最佳方法是什么?我不想要我的docker-app中的所有repo,所以我正在寻找一种方法在docker容器中执行这个方法到某个卷(或类似的东西)并重用它。 / p> 我正在考虑类似的事情。 Dockerfile
$ cd myrepo
$ go get -d ./...
构建图片
FROM golang:1.8
WORKDIR /app
ADD ./src
如何在不每次拉/下载的情况下重用依赖项?我想要它们的数量。我知道码头工作量有点但我不知道在这种情况下如何使用它。
答案 0 :(得分:3)
执行此操作的最佳方法是使用构建器模式。 在第一个图像中,您下载所有依赖项并构建可执行文件。 在第二步中,您将可执行文件复制到新图像中。您可以使用临时图像作为基础,但alpine可能更好,因为它也很小,但提供了一个shell和一个数据包管理器,用于https等证书。
如果您首先复制源并安装依赖项,那么它们将随每次源更改一起下载,因此最好使用go dep之类的东西。有了它,您可以复制Gopkg文件,安装依赖项,然后复制源。
官方文章https://docs.docker.com/engine/userguide/eng-image/multistage-build/ 并且更详细 https://blog.alexellis.io/mutli-stage-docker-builds/