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

Docker运行脚本与本地执行结果不一致:文件数量不符

Docker容器运行脚本与本地结果不一致问题排查

提供的Dockerfile内容:

FROM ubuntu
RUN apt-get update && apt-get install -y figlet
WORKDIR /app
COPY scriptas.sh /app/scriptas.sh
CMD figlet "NEDAS KAIRYS MKDF-23/1"&& chmod +x /app/scriptas.sh && ./scriptas.sh && ls darbas

提供的script.sh内容:

#!/bin/bash
rm - fr darbas
mkdir darbas
for i in $(find /etc -name '*.conf')
do
dydis=$(du -b "$i" | cut -f1)
vardas=$(basename "$i")
cp -r "$i" "darbas/${dydis)_${vardas}"
done

问题原因分析:

  • 基础镜像与本地系统的核心差异:Docker使用的ubuntu镜像默认是最小化基础版本,仅包含系统运行必需的核心组件;而本地运行的Ubuntu通常是完整安装状态,可能额外部署了大量软件包,这些软件会在/etc目录生成大量.conf配置文件。容器内/etc下的.conf文件数量远少于本地系统,因此脚本复制的文件数量自然更少。
  • 脚本语法错误(不影响文件数量,但需修正):
    • rm - fr darbas存在空格错误,正确写法应为rm -rf darbas,当前写法会导致rm命令参数解析失败,但后续mkdir darbas仍可正常执行;
    • 文件名拼接处${dydis)_${vardas}存在符号错误,右括号应为下划线,正确写法是${dydis}_${vardas},此错误会导致生成的文件名格式异常,但不影响最终文件数量。

验证方法:

分别在本地环境和容器内执行find /etc -name '*.conf' | wc -l,对比两者输出的文件数量,即可确认核心原因是镜像与本地系统的配置文件数量差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 17:40:06