我使用VSCode 1.63.2与Ubuntu20.04在远程机器中使用ssh,然后在Docker容器中处理一个项目。每当我在容器中执行Python时关闭VSCode窗口,它就会停止所有终端进程。当我重新附加到容器时,我看到一个Python终端显示了Session contents restored from <date> at <time>和脚本的输出,直到我与容器解除连接时为止。但是,当我关闭VSCode或关闭本地计算机时,我希望容器继续运行。
到目前为止,我已经尝试过了:首先,我在远程机器上克隆了我的GitHub爬虫,并用下面的Dockerfile构建了一个Docker映像
FROM python:3.8-bullseye
RUN pip install -U pip setuptools wheel &&\
useradd -m -r fabioklr
WORKDIR /home/fabioklr/masterthesis
RUN chown -R fabioklr .
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . .
ARG GIT_HASH
ENV GIT_HASH=${GIT_HASH:-dev}
USER fabioklr
RUN git config --global init.defaultBranch main &&\
git init &&\
git remote add origin <url-to-remote-repo>然后,我对图像运行docker build .,docker run -dit <image-name:tag> /bin/bash来旋转容器,并使用Remote-Containers: Attach to Running Container命令将VSCode附加到容器。
第二,在没有自定义Dockerfile和命令行的情况下,我尝试了它。我在远程机器上打开了我的项目文件夹,从命令调色板中选择了Remote-Containers: Open Folder in Container命令和Python 3基映像。VSCode自动完成了剩下的工作,但我仍然遇到了同样的问题。
第三,我尝试使用相同的Open Folder in Container command,但是使用上面的Dockerfile和一个定制的devcontainer.json文件,其中我指定了"shutdownAction: "none",因为它在VSCode文档中说,这个设置应该防止我的问题。
指示当相关工具窗口关闭/关闭时,VS代码和其他devcontainer.json支持工具是否应该停止容器。值为none、stopContainer (图像或Dockerfile的默认值)和stopCompose (Dockerfile的默认值)。
由于使用了这个VSCode,我成功地使用了帖子来解决这个问题,但是它对我的工作流来说并不理想。另外,这个问题特别奇怪,因为我几周前没有遇到过。我是遗漏了什么还是这是个问题?谢谢!
发布于 2022-10-12 19:31:59
另外,这个问题特别奇怪,因为我几周前没有遇到过。
嗨,听起来有点像升级后的问题。你有没有试过降级ms-vscode-远程.远程容器扩展?(右键单击->安装另一个版本)。
我使用的是v0.245.2,当VS代码关闭时,"shutdownAction": "none"保持容器运行。
https://stackoverflow.com/questions/70645618
复制相似问题