第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Docker 容器中傳遞 python 參數(shù)(argparse)

在 Docker 容器中傳遞 python 參數(shù)(argparse)

倚天杖 2022-06-02 17:58:17
我有一個使用以下命令運行的 python 腳本: python3 scan.py --api_token 5563ff177863e97a70a45dd4 --base_api_url http://101.102.34.66:4242/scanjob/ --base_report_url http://101.102.33.66:4242/ --job_id 42 當我在命令行上運行它時,它可以完美運行在我的 Dockerfile 中,我嘗試了 ARG 和 ENV 。似乎沒有一個工作#ARG api_token#ARG username#ARG password# Configure AWS arguments#RUN aws configure set aws_access_key_id $AWS_KEY \ #   && aws configure set aws_secret_access_key $AWS_SECRET_KEY \  #  && aws configure set default.region $AWS_REGION### copy bash script and change permissionRUN mkdir workspaceCOPY scan-api.sh /workspaceRUN chmod +x  /workspace/scan-api.pyCMD ["/python3", "/workspace/scan-api.py"]那么如何在 docker 文件中定義這個標記的參數(shù)呢?運行圖像時運行的命令是什么?
查看完整描述

3 回答

?
繁星淼淼

TA貢獻1775條經(jīng)驗 獲得超11個贊

您可以通過兩種方式執(zhí)行此操作,因為您希望在運行時覆蓋。

  • 作為 Docker 運行命令的參數(shù)

  • 作為 Docker 運行命令的 ENV

第一個是最簡單的,你不需要改變?nèi)魏螙|西 Dockerfile

docker run --rm my_image python3 /workspace/scan-api.py --bar tet --api_token 5563ff177863e97a70a45dd4 --base_api_url http://101.102.34.66:4242/scanjob/ --base_report_url http://101.102.33.66:4242/ --job_id

和我的簡單腳本

import sys
print  ("All ARGs",sys.argv[1:])

http://img1.sycdn.imooc.com//629889da0001efe518040083.jpg

使用 ENV,您需要更改 Dockerfile


我正在發(fā)布一種方式,您可以為所有 args 執(zhí)行此操作


FROM python:3.7-alpine3.9 

ENV API_TOKEN=default_token

CMD ["sh", "-c", "python /workspace/scan-api.py $API_TOKEN"]

因此,您可以在運行時覆蓋它們,或者能夠使用一些默認值運行。


docker run -it --rm -e API_TOKEN=new_token my_image


查看完整回答
反對 回復 2022-06-02
?
慕蓋茨4494581

TA貢獻1850條經(jīng)驗 獲得超11個贊

CMD采用與您在命令行中使用的參數(shù)完全相同的參數(shù)。

CMD ["/python3", "scan.py", "--api_token", "5563ff177863e97a70a45dd4", "--base_api_url", "http://101.102.34.66:4242/scanjob/", "--base_report_url", "http://101.102.33.66:4242/", "--job_id", "42"]



查看完整回答
反對 回復 2022-06-02
?
偶然的你

TA貢獻1841條經(jīng)驗 獲得超3個贊

這很令人困惑。

您將需要使用(or ) 的SHELL形式才能進行環(huán)境變量替換,例如ENTRYPOINTCMD

ENTRYPOINT "/python3","/workspace/scan-api.py","--api-token=${TOKEN}" ...

然后使用以下形式運行容器:

docker run --interactive --tty --env=TOKEN=${TOKEN} ...

!


查看完整回答
反對 回復 2022-06-02
  • 3 回答
  • 0 關注
  • 639 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號