将 /usr/local/bin/ 安装到 python:3 docker 镜像

问题描述 投票:0回答:1

我想从 docker python:3 将

/usr/local/bin/
安装到我的主机上。我想要这样做的原因是因为我希望我的 Pycharm 社区版能够在我的 IDE 中使用我的 docker 解释器。

这是我的 docker compose 文件:

version: '3.8'
services:
  db:
    image: mysql:8.0
    cap_add:
      - SYS_NICE
    restart: always
    environment:
      - MYSQL_DATABASE=mydb
      - MYSQL_ROOT_PASSWORD=root
    ports:
      - '3306:3306'
    volumes:
      - db:/var/lib/mysql
      - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql
  web:
    build: .
    command: python app/manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code/app
      - ./python-env:/usr/local/bin/
    ports:
      - "8000:8000"
    environment:
      - DB_NAME=mydb
      - DB_USER=root
      - DB_PASSWORD=root
    depends_on:
      - db

volumes:
  db:
    driver: local

问题出在这一行:

- ./python-env:/usr/local/bin/

错误是:

Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "python": executable file not found in $PATH: unknown

我尝试在我的 docker 构建文件中设置一个符号链接到 /usr/local/bin 并挂载该目录,但没有成功。有人对这个问题有任何想法吗?

python docker pycharm jetbrains-ide
1个回答
0
投票

bin 文件夹包含操作系统的基本可执行文件。当您将自己的卷 python-env 挂载到 dockers user/local/bin 时,无法在挂载的文件夹(python-env)中找到任何所需的文件并给出错误。

如果您的目标是在主机和容器之间共享 Python 环境,您可以

  1. 在主机上创建Python虚拟环境,然后将该环境挂载到容器的其他目录中。
  2. 更新容器的 PATH 环境变量以包含已安装的虚拟环境中可执行文件的路径。
# Prepend "/my/custom/path" to the PATH which contains python executable
ENV PATH=/my/custom/path:$PATH

# Rest of your Docker Configs
© www.soinside.com 2019 - 2024. All rights reserved.