微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在 VSCode Devcontainers 中调试 PostCreateCommand?

如何解决有没有办法在 VSCode Devcontainers 中调试 PostCreateCommand?

我目前遇到了这个问题:

Command Failed: /bin/sh -c ./.devcontainer/postCreateCommand.sh

这是

    "postCreateCommand": "./.devcontainer/postCreateCommand.sh",

来自 devcontainer.json 的设置。

但是当我停用“postCreateCommand”并在容器创建后手动运行时,脚本会起作用。这让我想到,问题可能出在脚本路径上。但事实也并非如此。因为只有一个 echo 命令的空脚本似乎可以工作。

脚本如下:

echo "Installing Developer Requirements"

apt-get update && apt-get install -y man git
pip3 install -r .devcontainer/dev_pip_requirements.txt

任何想法如何调试 "PostCreateCommand"输出的帮助不大,我不想开始将此项目简化为最小的工作示例。

我将 git 更改为在 Windows 上以 linux 文件结尾的所有内容。我三次检查了 shell 脚本是否有 LF 结尾。所以这些也不应该成为问题。 (他们以前是)。

解决方法

我认为一个原因可能是用户没有足够的权限来执行 apt-get update 命令。

remoteUser 更改为 root,在 devcontainer.json 配置文件中应该允许在使用 postCreateCommand.sh 运行时成功执行 bash shell 脚本。

  • 我已经尝试使用 python:3.8-slim-buster Docker 映像,并在 non-root 中设置了 Dockerfile 用户。

  • 我已将以下内容添加到 ./.devcontainer/devcontainer.json

    "postCreateCommand": "bash ./.devcontainer/postCreateCommand.sh","remoteUser": "root",
  • 我使用了以下 ./.devcontainer/postCreateCommand.sh

    #!/usr/bin/env bash
    
    set -ex
    
    apt-get update && apt-get install -y man git && rm -rf /var/lib/apt/lists/*
    
    pip install --requirement ./.devcontainer/dev_pip_requirements.txt
    
    

通常,不建议将 root 用于生产环境。

这里有更多关于 postCreateCommand

的信息

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。