【发布时间】:2021-07-05 14:47:25
【问题描述】:
我有一个现有的 docker 文件夹(带有 python 脚本的文件夹,具有 Dockerfile 和 docker-compose.yaml) - 如果我直接通过 docker 运行它,它运行良好。我希望能够在Visual Studio Code 下运行 docker,所以当我在VSCode 中更改脚本中的代码时 - 它会在 docker 中重建并重新运行脚本(我希望它能够快速完成)
我已经为VSCode 安装了Remote-Containers 插件,将文件夹作为容器打开,并重建了容器。该容器似乎已构建,我可以在终端中访问它 - 如果我在终端中手动运行所有内容,它可以工作,但我在 VSCode 遇到问题:
-
每次我重建容器时,我都必须在 VSCode 中安装 Python 插件(它会在 F5 上询问)。这是一个不便,但对于 VSCode 自动解决这个问题会很好。
-
Dockerfile有命令:RUN pipenv install和RUN cp config.sample.py config.py这些似乎不在容器中执行。如果我在终端中手动运行它们 - 我可以继续,但当然,我希望 VSCode 能够这样做。 -
Dockerfile也有命令:CMD ["pipenv", "run", "python", "fp.py"]我希望在F5上执行此操作。相反,VS 代码只是运行/use/bin/env /user/local/bin/python fp.py- 错过了所有的环境。理想情况下,能够在F5上调试它会很好。我无法选择pipenv作为解释器。 -
我怀疑所有这些都执行
docker-compose.yaml。不确定我是否真的需要它,但如果我能以某种方式将它包含在管道中,那就太棒了 - 但我可能错了,它已经在执行了
我的Dockerfile:
FROM python:3.8
RUN python3.8 -m pip install --upgrade pip && \
pip3 install pipenv
WORKDIR /app
COPY Pipfile* ./
RUN pipenv install
COPY . .
RUN cp config.sample.py config.py
CMD ["pipenv", "run", "python", "fp.py"]
这里对我来说有很多新东西,所以我可能会以一种愚蠢的方式来做这件事——我的目标是设置 VSCode,这样我就可以在容器下轻松开发这个脚本。
我的launch.json 是空的 - 不知道该写什么。
【问题讨论】:
-
这里使用容器真的重要吗?你能在没有 Docker 的情况下建立一个非容器 Docker 虚拟环境,并将其用于日常开发吗?如果您安装了pipenv,您应该能够运行
pipenv install,从签入源代码树的Pipfile创建它。 -
@DavidMaze 您可能适合这种情况,但我真的很想弄清楚容器设置。我有一个很大的容器列表(python 只是第一个) - 所以我真的很想弄清楚,如何做到这种容器方式
标签: python docker visual-studio-code pipenv