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:进入容器交互式调用
适合调试或多次调用函数的场景:
- 启动容器并进入交互式Shell:
docker run -it --rm my_docker_img bash
- 启动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
相关产品推荐
相关产品推荐

