docker - Docker没有缓存Alpine apk add命令

标签 docker docker-compose dockerfile alpine

每次构建容器时,我都必须等待apk add docker完成,这需要很长时间。
既然每次下载都相同,那么我是否可以出于某种目的强制Docker缓存apk的下载内容?

这是我的Dockerfile:

FROM golang:1.13.5-alpine

WORKDIR /go/src/app
COPY src .

RUN go get -d -v ./...
RUN go install -v ./...

RUN apk add --update docker

CMD ["app"]

顺便说一句,如果重要的话,我会在volumes: - /var/run/docker.sock:/var/run/docker.sock中使用这部分docker-compose.yml来使用同级容器。

编辑:我发现谷歌复制docker.tgz in Chromium:
# add docker client -- do not install docker via apk -- it will try to install
# docker engine which takes a lot of space as well (we don't need it, we need
# only the small client to communicate with the host's docker server)
ADD build/docker/docker.tgz /

docker.tgz是什么?我怎么才能得到它?

最佳答案

重新排序您的Dockerfile,它应该可以工作。

FROM golang:1.13.5-alpine
RUN apk add --update docker

WORKDIR /go/src/app
COPY src .
RUN go get -d -v ./...
RUN go install -v ./...
CMD ["app"]

在安装前进行复制时,每当您更改src中的内容时,缓存将对docker安装无效。

关于docker - Docker没有缓存Alpine apk add命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59327723/

相关文章:

docker - 如何在Docker容器中运行 Protractor 端到端测试?

docker - 了解 Docker 网络隔离

bash - 独立于操作系统转换 Redis 批量插入协议(protocol)格式

docker-compose yaml.parser.ParserError

docker - Dockerfile-如何定义将主机文件系统安装到容器

javascript - 如何构建 React 应用程序的 docker 镜像?

hadoop - Hadoop 有没有官方的 Docker 镜像?

networking - Docker 将端口发布到多个 IP

docker - 使用VS2017发布到容器注册表,如何设置标签或图像名称?

docker - 使用Zookeeper和Kafka在容器之间连接失败