如何将Python解释器添加到.Net Core Docker镜像



我在Dockerfile中有一个Dotnet核心基础映像。我需要使用来自的python解释器调用一些python脚本。内部Net Core项目。现在,可以有多种选项来添加python解释器,如创建一个单独的python容器或在当前.net核心映像中安装python,如DockerFile:中的以下代码

RUN apt-get install -y python3-pip python3-dev 
&& cd /usr/local/bin 
&& ln -s /usr/bin/python3 python 
&& pip3 install --upgrade pip

但是,运行上述命令会将图像大小增加400MB。

我已经提取了阿尔卑斯蟒蛇的图像,并在不同的容器中运行它,它只消耗45MB。那么,在中配置python的最佳方式是什么呢。网芯?创建一个单独的python容器是更好的方法吗?我如何使用安装在单独容器中的python解释器调用python脚本?

第页。S: 我是Docker 的新手

好吧,我不建议对python使用alpine基本映像,这就是为什么:https://pythonspeed.com/articles/alpine-docker-python/

您可以在ubuntu容器中额外支付400MB,或者使用debian:slim基本映像,它的重量将小于ubuntu。如果你为python 安装一些额外的库,它甚至可能比alpine轻

最好的方法是在不同的容器中为不同的语言提供不同的运行环境,所以只需将python脚本放入自己的容器中即可。

为python创建一个单独的容器不是一个好方法,因为例如,如果该容器因某些问题而关闭,那么您将很难执行python脚本。

方法1

另一种方法是将python-tar文件复制到容器中,在入口点脚本中,可以在指定的位置对其进行解压缩。这也将减小图像大小。

  1. 创建一个目录

    RUN mkdir -p /python /python/interpreter /python/interpreter/tar

  2. 将tar文件复制到路径

    COPY <workspace>/<tar file name>/python/tar

  3. 入口点脚本中的Untar命令

    tar xv -C /python/interpreter/ -f /python/interpreter/tar/<tar file name>

方法2

您可以直接使用python docker镜像运行python脚本:

docker run -it --rm --name my-script -v "$PWD":/user/myapp -w /user/src/myapp python:3 python your-script.py

方法3

使用类似下方的高山基地图像

FROM alpine:3.7 -- this has a virtual image size of 37MB

`FROM ubuntu:18.04
RUN apt-get update 
&& apt-get install -y --no-install-recommends mysql-client 
&& rm -rf /var/lib/apt/lists/*
This has a virtual image size of 15MB

最新更新