visual-studio-code - VS Code 远程容器 : cannot create directory ‘/home/appuser’ :

标签 visual-studio-code dockerfile vscode-remote

我正在尝试使用 Remote - Containers extension对于 Visual Studio Code,但是当我“在容器中打开文件夹”时,出现此错误:

Run: docker exec 0d0c1eac6f38b81566757786f853d6f6a4f3a836c15ca7ed3a3aaf29b9faab14 /bin/sh -c set -o noclobber ; mkdir -p '/home/appuser/.vscode-server/data/Machine' && { > '/home/appuser/.vscode-server/data/Machine/.writeMachineSettingsMarker' ; } 2> /dev/null
mkdir: cannot create directory ‘/home/appuser’: Permission denied

我的 Dockerfile 使用:
FROM python:3.7-slim
...
RUN useradd -ms /bin/bash appuser
USER appuser

我也试过:
RUN adduser -D appuser
RUN groupadd -g 999 appuser && \
    useradd -r -u 999 -g appuser appuser
USER appuser

这两个工作,如果我直接建立他们。我如何得到这个工作?

最佳答案

进入您的 WSL2 并使用命令 id 检查您的本地 uid(非 root)是什么。
就我而言,它是 UID=1000(ubuntu)。
将您的 dockerfile 更改为如下所示:

# For more information, please refer to https://aka.ms/vscode-docker-python
FROM python:3.8-slim-buster

# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

# Install pip requirements
COPY requirements.txt .
RUN python -m pip install -r requirements.txt



WORKDIR /home/ubuntu
COPY . /home/ubuntu

# Creates a non-root user and adds permission to access the /app folder
# For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers
RUN useradd -u 1000 ubuntu && chown -R ubuntu /home/ubuntu
USER ubuntu


# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
CMD ["python", "app.py"]

关于visual-studio-code - VS Code 远程容器 : cannot create directory ‘/home/appuser’ :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916598/

相关文章:

typescript - VS Code 中 Vuex 商店的 Intellisense

visual-studio-code - VSCode Latex-workshop : No AutoBuild for onFileChange

python - 从DockerFile修改Python脚本

amazon-web-services - 部署到 Elastic Beanstalk 时可以指定 Dockerfile 路径吗?

ssh - 在只允许入站 SSH 连接的目标机器上的 VSCode 中使用 "Remote SSH"

visual-studio-code - 如何防止为远程 ssh 连接启动新的 VS Code 窗口

visual-studio-code - 如何在 VS Code 中创建一个开发容器并将其用于多个项目?

c++ - Opencv C++ MinGW VSCode 编译时出现 fatal error

visual-studio-code - vscode 开发容器是否应该运行 npm install 作为其设置的一部分?

docker - package.json文件不会在Docker容器中保留