You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建自定义Google Cloud Workstation镜像时遇apt-get包定位失败问题

问题:构建Google Cloud工作站镜像时出现apt-get包定位错误

我正尝试按照相关步骤,构建并推送修改后的Google Cloud工作站镜像到容器注册表。我使用的Dockerfile内容如下:

FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest

RUN \
  sudo apt-get update && \
  sudo apt-get install -y apache2 \
  sudo apt-get install -y libbz2-dev \
  sudo apt-get install -y php && \
  sudo apt-get install php-mysqli

执行docker build -t my-custom-image .命令构建镜像时,出现以下错误:

E: Unable to locate package apt-get
E: Unable to locate package install
E: Unable to locate package apt-get
E: Unable to locate package install
The command '/bin/sh -c sudo apt-get update &&   sudo apt-get install -y apache2   sudo apt-get install -y libbz2-dev   sudo apt-get install -y php &&   sudo apt-get install php-mysqli' returned a non-zero code: 100

错误原因

你的Dockerfile里的RUN指令存在语法错误:在apache2这一行末尾没有添加&&来分隔后续命令,导致Docker把下一行的sudo apt-get install当成了apt-get install apache2的参数,系统误以为你要安装名为apt-get、install的包,所以报出"无法定位包"的错误。

另外,这个基础镜像的默认用户已是root,不需要加sudo,直接执行apt-get命令即可。

修正后的Dockerfile

FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest

RUN apt-get update \
    && apt-get install -y apache2 libbz2-dev php php-mysqli \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

优化说明:

  • 把多个apt-get install合并成一条命令,减少镜像层数量,提升构建效率
  • 加入apt-get clean和清理apt缓存目录的命令,大幅减小最终镜像体积

内容的提问来源于stack exchange,提问作者DanielAttard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 09:15:30