【问题标题】:can i map parameters passed to a docker image to env variables in python?我可以将传递给 docker 图像的参数映射到 python 中的环境变量吗?
【发布时间】:2020-11-04 10:42:38
【问题描述】:

我有一个 python 应用程序,我正在为该应用程序创建 docker 映像。示例(下面的 docker 文件)。我想在 aws ec2 或 aws 批处理作业中运行容器。我可以在运行 docker 容器时传递一些参数,以便可以将其传递给我的 python 应用程序,并且该应用程序可以在运行时使用这些值。是否可以在启动批处理作业时传递参数,可以映射到我的应用程序中定义的一些环境变量?

FROM python:3.7

ADD test.py /

RUN pip install ...

CMD [ "python3", "./test.py" ]

【问题讨论】:

    标签: python docker aws-batch


    【解决方案1】:

    是否可以在启动批处理作业时传递参数,即 可以映射到我的应用中定义的一些环境变量

    什么时候可以pass environment variable to AWS batch job 为什么需要用参数映射应用程序环境变量?

    您可以在Job Definitions 中设置环境变量,并在python 应用程序中使用这些变量。

    下面的配置类似于docker run -it -e BATCH_FILE_S3_URL="s3://my-batch-scripts/myjob.sh"

    在作业定义中设置环境变量

    {
        "containerProperties": {
    .
    .
    .
            "environment": [
                {
                    "name": "BATCH_FILE_S3_URL",
                    "value": "s3://my-batch-scripts/myjob.sh"
                },
                {
                    "name": "BATCH_FILE_TYPE",
                    "value": "script"
                }
            ]
    }
    

    在python应用程序中,

    S3_URL=os.getenv('BATCH_FILE_S3_URL')
    # S3_URL will be `s3://my-batch-scripts/myjob.sh`
    

    【讨论】:

    • 谢谢。如果这听起来多余,我深表歉意。一旦我们设置了作业定义,使用 docker 映像和您展示的环境变量,我们实际上就不需要 docker run 命令,对吧?
    • 是的,您可以从不需要的环境变量中使用 tu override run 命令。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 2018-12-18
    • 2020-11-07
    • 2018-08-14
    • 2017-01-22
    • 2019-06-02
    相关资源
    最近更新 更多