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

无法使用docker exec连接Spring Boot应用Docker容器的问题咨询

问题解决思路

原因分析

你使用的Spring Boot Buildpack默认生成的是distroless镜像,这类镜像为了极致轻量化,没有预装bash、sh这类Shell工具,因此会出现找不到可执行文件的报错。

解决方案

1. 修改Buildpack配置,使用带Shell的基础镜像

在你提到的build.gradle.kts配置位置,指定使用包含Shell的builder镜像,比如paketobuildpacks/builder-jammy-base:

tasks.bootBuildImage {
    builder.set("paketobuildpacks/builder-jammy-base")
    // 保留原有其他配置
}

重新构建镜像后,容器内会预装bash,执行docker exec -it sb-repro bash即可正常连接。

2. 临时调试方案(无需修改镜像)

如果只是临时需要进入容器调试,可通过docker cp将宿主机的Shell拷贝到容器内:

# 先获取容器ID
docker ps
# 将宿主机的bash拷贝到容器的/tmp目录
docker cp /bin/bash <容器ID>:/tmp/bash
# 执行拷贝的bash进入容器
docker exec -it <容器ID> /tmp/bash

注意:该方法仅临时有效,容器重启后拷贝的文件会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 07:45:55