Pasar arguments a Python argparse dentro del contenedor Docker

Me estoy embarcando en mi primer bash de utilizar un contenedor de docker. Tengo un script de python que llama un par de API y analiza un file. La secuencia de commands tomó parameters para la URL del server para la API, la key API y la ruta del file para el análisis del file. Usé argparse para manejarlos en el script.

¿Cómo puedo get estos pasaron a Docker? No quiero codificar nada ya que estoy buscando entregar este script a un ingeniero que necesita ejecutarlo periódicamente y tomar medidas en function de los resultados.

Gracias por tu ayuda. He estado buscando pero parece que codificar cosas en el file docker es la sugerencia: quiero que el usuario pueda ponerlas en time de ejecución. O quizás he encontrado la respuesta y simplemente no lo estoy entendiendo …

Me disculpo si mi jerga no es correcta, este es mi primer bash de utilizar Docker.

Asummos que su command está debajo

python app.py "URL" "APIKEY" "filepath" 

Así que pondrás tu Dockerfile a continuación

 FROM python:3.6 WORKDIR /app COPY app.py . ENTRYPOINT ["python", "app.py"] 

Entonces, la persona que ejecuta el contenedor acoplable lo haría a continuación

 docker run -v /home/tarun/project/filetoparse.yaml:/config.yaml <yourimageame> "URL" "APIKEY" /config.yaml 

Si desea dar más flexibilidad, incluso puede usar variables de entorno

 docker run -v /home/tarun/project/filetoparse.yaml:/config.yaml -e APIKEY="XYZ" <dockerimage> "URL" /config.yaml 

Y luego en tu script puedes leerlo usando os.environ['APIKEY']

La forma en que lo haces depende de cómo uses el acoplador. Si desea ejecutar su script en un contenedor ya en ejecución, puede usar exec:

 docker exec <yourContainerName> python <yourScript> <args> 

Alternativamente, si tiene una image de acoplador donde el script es el ENTRYPOINT, cualquier argumento que pase al command de ejecución del acoplador se agregará al punto de input.

Por lo tanto, si su file docker se ve así:

 FROM yourbase .... ENTRYPOINT <yourScript> 

Luego puede ejecutar el script ejecutando el contenedor en sí:

 docker run --rm <yourImageName> <args> 

Según tu comentario a continuación, parece que quieres esta opción. Debe cambiar su file docker para especificar

 ENTRYPOINT ["python","./script.py"] 

(en lugar de usar CMD) y luego puede ejecutar a través de:

 docker run --rm <yourImageName> -a API_KEY - f FILENAME -o ORG_ID 
    Intereting Posts