从基于conda python项目的docker镜像调用函数

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

我不太明白如何制作 docker 映像,然后运行基本功能 我的玩具项目(在 conda 环境上运行)如下所示,位于底部:

构建看起来执行得很好

docker build --no-cache -t my_docker_img .
我不明白的是如何加载图像并调用包公开的函数
print_hi, app
并向它们传递一些用户定义的参数。

我是一个真正的 docker 初学者,这实际上是我的第一个。

dockerize_me\
    |
    |
    |
    dockerize_me\
        |
        |
        __init__.py
        main.py
        utils.py
    |
    |
    dockerfile
    environment.yml
    setup.py

文件内容所在:

init.py

# file: __init__.py
from dockerize_me.main import print_hi, app

main.py

from dockerize_me.utils import add_scalar
import numpy as np
    
    
def print_hi(name):
    print("hello %s" % name )  
    
    
def app(lst_in, const):
    arr = add_scalar(np.array(lst_in), const)
    return arr

utils.py

def add_scalar(arr, scalar):
    return arr + scalar

环境.yml

name: dockerize_me
channels:
  - conda-forge
dependencies:
  - pip
  - python=3.8
  - numpy

dockerfile

FROM mambaorg/micromamba:0.19.1
    
ARG MAMBA_DOCKERFILE_ACTIVATE=1
COPY environment.yml .
RUN micromamba env create -f environment.yml
python docker conda
1个回答
0
投票

构建镜像后,您需要将镜像作为容器运行。请注意,容器和图像名称是两个不同的参数,因为您可以在多个容器中启动一个图像:

docker run <image_name> <container_name>

要在容器环境中运行 python 函数,您可以使用 exec 命令“步入”容器,并使用 shell 运行 python 代码,如下所示:

docker exec -it <container_name> bash
python
from dockerize_me.main import print_hi
print_hi("Max")

注意: 如果您不确定可用的映像和正在运行的容器,您可以使用以下方法检查它们:

docker image ls
docker ps

您还可以运行导入函数的 python 文件,而不是在 shell 中运行 python 代码。

© www.soinside.com 2019 - 2024. All rights reserved.