Fel*_* B. 6 docker docker-compose visual-studio-code vscode-devcontainer
我目前遇到这个问题:
Command failed: /bin/sh -c ./.devcontainer/postCreateCommand.sh
Run Code Online (Sandbox Code Playgroud)
哪一个是
"postCreateCommand": "./.devcontainer/postCreateCommand.sh",
Run Code Online (Sandbox Code Playgroud)
设置从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
Run Code Online (Sandbox Code Playgroud)
有什么想法如何调试吗"PostCreateCommand"
?输出没有什么帮助,我不想开始将这个项目简化为最小的工作示例。
我更改了 git 以在 Windows 上检查以 linux 文件结尾的所有内容。我三次检查 shell 脚本是否有 LF 结尾。所以这些也不应该成为问题。(他们以前是)。
小智 7
我认为原因之一可能是用户没有足够的权限来执行该apt-get update
命令。
将配置文件中的 更改remoteUser
为root
,应该允许在使用 运行 shell 脚本时成功devcontainer.json
执行shell 脚本。postCreateCommand.sh
bash
我已经使用python:3.8-slim-buster
Docker 映像进行了尝试,并non-root
在Dockerfile
.
我已将以下内容添加到./.devcontainer/devcontainer.json
:
"postCreateCommand": "bash ./.devcontainer/postCreateCommand.sh",
"remoteUser": "root",
Run Code Online (Sandbox Code Playgroud)
我使用过以下内容./.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
Run Code Online (Sandbox Code Playgroud)
一般来说,root
不建议用于生产环境。
这里有一些更多信息postCreateCommand
https://github.com/microsoft/vscode-remote-release/issues/1685#issuecomment-542950190
https://github.com/microsoft/vscode-remote-release/issues/1685#issuecomment-543895263
归档时间: |
|
查看次数: |
8256 次 |
最近记录: |