Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

envbuilder causes OOM when pushing large image layers to cache

未关闭
#459 0 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
30/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
docker, go
领域
build-system

调研方向

使用提供的 docker run 命令、一个 Ollama 层,并设置 ENVBUILDER_CACHE_REPO,重现该故障。从出现 cache-key 日志的 kaniko's pkg/executor/build.go#L441 开始,跟踪缓存推送路径。完成标准是大型层可以被缓存,而不会导致 envbuilder 因 OOM 被终止。

由索引模型根据 Issue 内容生成。

描述

I have a .devcontainer with a Dockerfile:

FROM mcr.microsoft.com/vscode/devcontainers/base:ubuntu
# Install Ollama
RUN curl -fsSL https://ollama.com/install.sh | TERM=xterm sh

Ollama is about 3GB.

If I run envbuilder with ENVBUILDER_CACHE_REPO set, then the envbuilder process will cause an OOM (without CACHE_REPO, it completes):

docker run -it --rm \
    -v $PWD:/workspace \
    -e ENVBUILDER_WORKSPACE_FOLDER=/workspace \
    -e ENVBUILDER_INIT_SCRIPT=bash \
    -e ENVBUILDER_VERBOSE=1 \
    -e ENVBUILDER_CACHE_REPO="<aws-acct-id>.dkr.ecr.us-west-2.amazonaws.com/envbuilder-cache" \
    ghcr.io/coder/envbuilder
envbuilder v1.1.0+a3a6a83 - Build development environments from repositories in a container
No Dockerfile specified, looking for a devcontainer.json...
Building in Devcontainer mode using /.devcontainer/devcontainer.json
<...>
#1: RUN curl -fsSL https://ollama.com/install.sh | TERM=xterm sh
#1: Using new RunMarker command
#1: Cmd: /bin/sh
#1: Args: [-c curl -fsSL https://ollama.com/install.sh | TERM=xterm sh]
#1: Util.Lookup returned: &{Uid:0 Gid:0 Username:root Name:root HomeDir:/root}
#1: Performing slow lookup of group ids for root
#1: Running: [/bin/sh -c curl -fsSL https://ollama.com/install.sh | TERM=xterm sh]
>>> Installing ollama to /usr/local
>>> Downloading Linux arm64 bundle
######################################################################## 100.0%
<...>
>>> Install complete. Run "ollama" from the command line.
#1: Files changed [/etc <...> /var/log/lastlog]
#1: Taking snapshot of files...
#1: Adding to layer: [/ /etc <...> /var/log/lastlog]
#1: Hash components for file: /, mode: drwxr-xr-x, mtime: 2025-04-25 21:54:31.26944614 +0000 UTC, size: 1000, user-id: 0, group-id: 0
<...>
#1: Hash components for file: /var/log/lastlog, mode: -rw-rw-r--, mtime: 2025-04-25 21:55:28.376418937 +0000 UTC, size: 48568, user-id: 0, group-id: 17
#1: Deleting in layer: map[]
#1: Build: composite key for command RUN curl -fsSL https://ollama.com/install.sh | TERM=xterm sh &{[sha256:67d45b84f79ba63114ea97192913a59fff14c262ed2b83d15c357ac1b910b453 |1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RUN curl -fsSL https://ollama.com/install.sh | TERM=xterm sh]}
#1: Build: cache key for command RUN curl -fsSL https://ollama.com/install.sh | TERM=xterm sh f4c8cf5ad4c513d32c23f27b704b5f4dcea782b9d5b3b7c96ce96867e8de03d3

The docker container exits after this. Checking dmesg shows that envbuilder was selected for oom-kill.

That last line ("Build: cache key for command") comes from kaniko, indicating something after that point is causing the excess memory use.

Possibly related issue on Kaniko github: https://github.com/GoogleContainerTools/kaniko/issues/909

主要语言
Go
星标
300
派生
64
平均合并
20 分钟
30 天内合并 PR
1

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

coder/envbuilder 的其他 Issue

查看 coder/envbuilder 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。