首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Pycharm (或其他Jetbrains项目)中运行带有码头撰写器的Colima

如何在Pycharm (或其他Jetbrains项目)中运行带有码头撰写器的Colima
EN

Stack Overflow用户
提问于 2022-02-04 10:15:56
回答 1查看 3.4K关注 0票数 0

当从Desktop切换到科利马时,我遇到了在特性中设置运行配置的问题。示例设置

我一直从Pycharm那里得到这个错误:

代码语言:javascript
复制
no such service: 
container:9200f38c022e09065fbb972683cd8843c6faedf4b722ee573ea34303f604b843:ro 
Process finished with exit code 1

版本:

Colima诉0.3.2码头-撰写v 2.2.3 PyCharm 2021.3.2 (专业版)

EN

回答 1

Stack Overflow用户

发布于 2022-02-04 13:26:03

我还没有一个解决方案,但我相信罪魁祸首是pycharm使用语法来指定您(我们的)设置不支持的容器。

Pycharm与docker-compose集成如下:

  1. 创建了包含大量助手脚本的docker容器。
代码语言:javascript
复制
$ docker ps  -a
...
346cc60545f6 aac5779e964d  "/bin/sh" Created pycharm_helpers_PY-213.6777.50
  1. 它创建了自己的覆盖层。我的项目docker-compose.ymlversion: 2,py魅力的覆盖是:
代码语言:javascript
复制
$ cat /Users/.../Library/Caches/JetBrains/PyCharm2021.3/tmp/docker-compose.override.2.yml
version: "2"
services:
  app:
    command:
    - "python"
    - "-V"
    entrypoint: ""
    environment:
      PYTHONUNBUFFERED: "1"
    restart: "no"
    volumes: []
    volumes_from:
    - "container:346cc60545f6e7955661fc6f8f578c6f3f871a7330b068cb35224efbee05aae7:ro"
  1. 是使用覆盖调用docker-compose
代码语言:javascript
复制
docker-compose \
  -f /Users/.../projects/pythonProject1/docker-compose.yml \
  -f /Users/.../Library/Caches/JetBrains/PyCharm2021.3/tmp/docker-compose.override.9.yml \
  run --rm --no-deps app

现在,如果我尝试使用container:语法和docker run,就会得到一个错误:

代码语言:javascript
复制
$ docker run --rm -it \
  --volumes-from container:346cc60545f6e7955661fc6f8f578c6f3f871a7330b068cb35224efbee05aae7:ro \
  python:3.9 bash
docker: Error response from daemon: invalid mode: 346cc60545f6e7955661fc6f8f578c6f3f871a7330b068cb35224efbee05aae7:ro.
See 'docker run --help'.

删除container:前缀后,它可以工作:

代码语言:javascript
复制
$ docker run --rm -it \
  --volumes-from 346cc60545f6e7955661fc6f8f578c6f3f871a7330b068cb35224efbee05aae7:ro \
  python:3.9 bash
root@0e5ba9104c62:/# mount | grep pycharm
/dev/disk/by-label/data-volume on /opt/.pycharm_helpers type ext4 (ro,relatime)
root@0e5ba9104c62:/# ls /opt/.pycharm_helpers/
Dockerfile       docstring_formatter.py       pockets       pycharm_matplotlib_backend      six.py
MathJax          epydoc               profiler      pycodestyle.py              sphinxcontrib
__pycache__      extra_syspath.py         py2ipnb_converter.py  pydev                   syspath.py
check_all_test_suite.py  generator3           py2only       python-skeletons            third_party
conda_packaging_tool.py  icon-robots.txt          py3only       remote_sync.py              tools
coverage_runner      packaging_tool.py        pycharm       rest_runners                typeshed
coveragepy       pip-20.3.4-py2.py3-none-any.whl  pycharm_display   setuptools-44.1.1-py2.py3-none-any.whl  virtualenv.pyz

但是对于docker-compose.yml version: 3,我得到了不同的错误

代码语言:javascript
复制
error during connect: Get "http://unix:2375/Users/.../.colima/docker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Dpythonproject1%22%3Atrue%7D%7D&limit=0": dial tcp: lookup unix on 1.1.1.1:53: no such host

Process finished with exit code 1

Pycharm的docker-compose for 3.8不再使用container:语法:

代码语言:javascript
复制
$ cat /Users/.../Library/Caches/JetBrains/PyCharm2021.3/tmp/docker-compose.override.9.yml
version: "3.8"
services:
  app:
    command:
    - "python"
    - "-V"
    entrypoint: ""
    environment:
      PYTHONUNBUFFERED: "1"
    restart: "no"
    volumes:
    - "pycharm_helpers_PY-213.6777.50:/opt/.pycharm_helpers"
volumes:
  pycharm_helpers_PY-213.6777.50: {}

用去掉contaner:前缀的包装脚本替换覆盖可能对version: 2有帮助,但是version: 3.8的问题仍然存在。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70984662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档