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

VSCode远程开发使用Docker镜像时终端不显示motd消息问题咨询

问题根因

VS Code 远程开发扩展启动容器时,会默认覆盖Dockerfile中定义的CMD和ENTRYPOINT指令,用于执行自身的远程服务初始化逻辑,因此你在CMD中写的motd打印命令不会被执行。

可行解决方案

  • 方案1:将打印逻辑加入shell全局启动配置
    在Dockerfile中添加如下指令,将cat命令写入全局bash启动文件,所有用户打开bash终端时都会自动打印motd:
RUN echo "cat /etc/motd" >> /etc/bash.bashrc

如果使用zsh作为默认shell,对应写入/etc/zsh/zshrc即可。

  • 方案2:使用devcontainer.json的postStartCommand配置
    在.devcontainer/devcontainer.json中添加如下配置,容器启动完成后会自动执行该命令输出motd:
"postStartCommand": "cat /etc/motd"

如果输出没有默认展示,可以在VS Code设置中开启Remote Containers: Show Post Start Command Output选项。

  • 方案3:配置终端为登录模式自动加载motd
    大多数Linux发行版的登录shell会默认通过pam模块自动加载/etc/motd,你可以在devcontainer.json中配置终端默认以登录模式启动:
"terminal.integrated.profiles.linux": {
  "bash": {
    "path": "/bin/bash",
    "args": ["-l"]
  }
}

该方案无需额外添加cat命令即可实现motd自动展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 13:00:03