python里如何添加模块_如何将Python模块添加到docker容器中?

我从Divio Django项目模板创建了一个样板项目:

(Python 3.6, Django CMS, HTML 5)

签出存储库将返回两个文件,其中包括一个docker-compose和一个dockerfile。

Docker撰写:version: "2"

services:

web:

build: "."

links:

- "db:postgres"

ports:

- "8000:80"

volumes:

- ".:/app:rw"

- "./data:/data:rw"

command: python manage.py runserver 0.0.0.0:80

env_file: .env-local

db:

image: postgres:9.6-alpine

environment:

POSTGRES_DB: "db"

volumes:

- ".:/app:rw"

所以我试着在本地运行docker-compose run web

启动本地Django CMS实例。但是,我遇到了以下错误:Starting ale_db_1 ... done

/app/addons/aldryn-django/aldryn_config.py:137: RuntimeWarning: no cache configured. Falling back to CACHE_URL=locmem://

RuntimeWarning,

/app/addons/aldryn-django/aldryn_config.py:137: RuntimeWarning: no cache configured. Falling back to CACHE_URL=locmem://

RuntimeWarning,

Unhandled exception in thread started by .wrapper at 0x7f42a18c4950>

Traceback (most recent call last):

File "/virtualenv/lib/python3.6/site-packages/django/utils/autoreload.py", line 228, in wrapper

fn(*args, **kwargs)

File "/virtualenv/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 116, in inner_run

autoreload.raise_last_exception()

File "/virtualenv/lib/python3.6/site-packages/django/utils/autoreload.py", line 251, in raise_last_exception

six.reraise(*_exception)

File "/virtualenv/lib/python3.6/site-packages/django/utils/six.py", line 685, in reraise

raise value.with_traceback(tb)

File "/virtualenv/lib/python3.6/site-packages/django/utils/autoreload.py", line 228, in wrapper

fn(*args, **kwargs)

File "/virtualenv/lib/python3.6/site-packages/django/__init__.py", line 27, in setup

apps.populate(settings.INSTALLED_APPS)

File "/virtualenv/lib/python3.6/site-packages/django/apps/registry.py", line 85, in populate

app_config = AppConfig.create(entry)

File "/virtualenv/lib/python3.6/site-packages/django/apps/config.py", line 94, in create

module = import_module(entry)

File "/virtualenv/lib/python3.6/importlib/__init__.py", line 126, in import_module

return _bootstrap._gcd_import(name[level:], package, level)

File "", line 994, in _gcd_import

File "", line 971, in _find_and_load

File "", line 953, in _find_and_load_unlocked

ModuleNotFoundError: No module named 'aldryn_apphooks_config'

有什么想法吗?

当以交互方式启动容器时,我可以重现错误:mzh@ale $ docker run -it --rm divio/base:4.14-py3.6-slim-stretch /bin/bash

root@5d65902b34a4:/app# python

Python 3.6.8 (default, Mar 27 2019, 08:53:45)

[GCC 6.3.0 20170516] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import aldryn_apphooks_config

Traceback (most recent call last):

File "", line 1, in

ModuleNotFoundError: No module named 'aldryn_apphooks_config'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以的,可以通过 Dockerfile 文件来安装 Python 模块。 在 Docker ,可以使用 Dockerfile 文件来构建自定义的 Docker 镜像。Dockerfile 文件包含了构建镜像所需要的指令和配置信息。 要在 Docker 镜像安装 Python 模块,可以在 Dockerfile 文件使用 `RUN` 指令来运行 `pip install` 命令来安装模块。例如: ``` FROM python:3.9 # 安装所需的 Python 模块 RUN pip install requests numpy pandas # 设置工作目录 WORKDIR /app # 复制应用程序文件到容器 COPY app.py /app/ # 设置容器启动时要运行的命令 CMD ["python", "app.py"] ``` 在这个例子,首先使用 `FROM` 指令来指定基础镜像为 Python 3.9,然后使用 `RUN` 指令来安装所需的 Python 模块(requests、numpy 和 pandas)。然后,使用 `WORKDIR` 指令来设置工作目录为 `/app`,并使用 `COPY` 指令将应用程序文件 `app.py` 复制到容器的 `/app` 目录。最后,使用 `CMD` 指令来设置容器启动时要运行的命令为 `python app.py`。 在 Dockerfile 文件添加了这些指令后,可以使用 `docker build` 命令来构建 Docker 镜像。构建完成后,使用 `docker run` 命令来启动容器,并在容器运行 Python 应用程序。 例如,假设 Dockerfile 文件名为 `mydockerfile`,可以使用以下命令来构建 Docker 镜像: ``` docker build -t myimage -f mydockerfile . ``` 然后,可以使用以下命令来启动容器,并在容器运行 Python 应用程序: ``` docker run -it --rm myimage ``` 其,`--rm` 参数表示容器退出时自动删除容器,`myimage` 是刚才构建的 Docker 镜像的名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值