You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker新手求助:基于Conda项目镜像调用函数并传参方法

Docker镜像构建后运行Python函数指南

你已经成功构建了my_docker_img镜像,但还需要完善Dockerfile并通过两种常用方式调用函数,以下是具体步骤:

一、先完善Dockerfile

原Dockerfile仅创建了Conda环境,未复制项目代码和配置包导入,修改后才能正常调用函数:

FROM mambaorg/micromamba:0.19.1

ARG MAMBA_DOCKERFILE_ACTIVATE=1
COPY environment.yml .
RUN micromamba env create -f environment.yml

# 复制项目代码到容器工作目录
COPY dockerize_me /app/dockerize_me
COPY setup.py /app/

# 设置工作目录
WORKDIR /app

# 安装本地项目,确保能直接导入dockerize_me包
RUN pip install -e .

修改后重新构建镜像:

docker build --no-cache -t my_docker_img .

如果你的setup.py还未配置,可参考以下内容编写(确保包能被Python识别):

from setuptools import setup, find_packages

setup(
    name="dockerize_me",
    version="0.1",
    packages=find_packages(),
)

二、调用函数的两种方式

方式1:直接通过Docker命令一次性调用

调用print_hi函数

执行以下命令,替换'Alice'为你要传入的自定义参数:

docker run --rm my_docker_img python -c "from dockerize_me import print_hi; print_hi('Alice')"
  • --rm:容器运行结束后自动删除,避免残留无用容器
  • python -c:执行一段单行Python代码,导入函数并调用

调用app函数

传入列表[1,2,3]和常量5,示例命令:

docker run --rm my_docker_img python -c "from dockerize_me import app; result = app([1,2,3], 5); print(result)"

运行后会输出[6 7 8],你可以替换列表和常量为自定义值。

方式2:进入容器交互式调用

适合调试或多次调用函数的场景:

  1. 启动容器并进入交互式Shell:
docker run -it --rm my_docker_img bash
  1. 启动Python解释器,导入并调用函数:
python
>>> from dockerize_me import print_hi, app
>>> print_hi('Bob')
hello Bob
>>> app([4,5,6], 2)
array([6, 7, 8])

完成调用后,输入exit()退出Python解释器,再输入exit退出容器。

内容的提问来源于stack exchange,提问作者Aenaon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 06:04:50