[JAVA] J'ai essayé un petit docker de digdag.

digdag docker.run_options

Il semble que les options liées à docker soient disponibles à partir de la version 0.9.37 de digdag.

Note de publication: https://docs.digdag.io/releases/release-0.9.37.html?highlight=run_options

RP applicable: https://github.com/treasure-data/digdag/pull/1025

Citant le PR, il semble que vous pouvez définir comme suit.

_export:
  docker:
    image: ruby:2.5.1
    build:
      - apt install vim
    docker: /usr/local/bin/nvidia-docker
    run_options: ["-v", "/tmp:/tmp"]
    build_options: ["--pull"]

Voici run_options: [" -v "," / tmp: / tmp "], mais je me suis demandé si cela pouvait être quelque chose comme run_options: [" -v / tmp: / tmp "]

docker: Error response from daemon: create  /: " /" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.

Je n'ai pas pu le faire car j'ai eu une erreur (la même chose est vraie pour build_options.)

Jetez un œil au journal DEBUG de digdag

Vous pouvez afficher le journal de débogage avec digdag run -l debug.

--Commandes à exécuter lorsque run_options: [" -v "," / tmp: / tmp "]

2019-08-30 19:19:07 +0900 [DEBUG](0017@[0:default]+sample_wf+sample_docker_run_options) io.digdag.standards.command.DockerCommandExecutor: Running in docker: docker run -v /tmp:/tmp -i --rm -v ..Abréviation

--Commandes à exécuter lorsque run_options: [" -v / tmp: / tmp "]

2019-08-30 19:20:22 +0900 [DEBUG](0017@[0:default]+sample_wf+sample_docker_run_options) io.digdag.standards.command.DockerCommandExecutor: Running in docker: docker run -v /tmp:/tmp -i --rm -v ..Abréviation

Les commandes docker affichées dans le journal DEBUG sont ** exactement les mêmes **, et aucune ne semble être un problème de commande.

Vous pouvez l'exécuter en copiant uniquement la commande et en l'exécutant dans le terminal local.

Je n'obtiens pas d'erreur comme docker: réponse d'erreur du démon ci-dessus.

Alors pourquoi tu ne peux pas

run_options est cette partie ʻAddAll est ajouté à ʻImmutableList déclaré comme command.

Cette variable command est finalement transmise à ProcessBuilder commeProcessBuilder docker = new ProcessBuilder (command.build ());.

ProcessBuilder ne connecte pas les commandes en une seule avant d'exécuter le processus, c'est command.toArray (new String [command.size ()]);, donc run_options: ["-v / tmp: Si vous le définissez comme / tmp "], il sera entré comme une seule commande ..?

En d'autres termes, ** en termes d'image **

--Commandes à exécuter lorsque run_options: [" -v "," / tmp: / tmp "]


"docker" "run" "-v" "/tmp:/tmp" "nannka-image:0.1"

--Commandes à exécuter lorsque run_options: [" -v / tmp: / tmp "]


"docker" "run" "-v /tmp:/tmp" "nannka-image:0.1"

Résumé

Dans le journal DEBUG,

logger.debug("Running in docker: {} {}", command.build().stream().collect(Collectors.joining(" ")), imageName);

Il semblait qu'il n'y avait pas de problème avec run_options: [" -v / tmp: / tmp "], mais il était en fait exécuté par ProcessBuilder, donc il y avait un problème.

C'est comme, "C'est vrai. C'est pourquoi c'est un arrangement."

Si vous trouvez quelque chose qui ne va pas, je vous serais reconnaissant si vous pouviez le signaler.

Recommended Posts

J'ai essayé un petit docker de digdag.
J'ai essayé de jouer un peu avec BottomNavigationView ①
J'ai essayé d'incorporer une formule dans Javadoc
J'ai essayé Spring.
J'ai essayé de mettre Tomcat
J'ai essayé youtubeDataApi.
J'ai essayé de refactoriser ①
J'ai essayé FizzBuzz.
J'ai essayé JHipster 5.1
[Note personnelle] J'ai appris à la légère sur les modificateurs
java j'ai essayé de casser un simple bloc
J'ai essayé de développer un outil de gestion des effectifs
J'ai essayé de développer un site Web pour étudier DUO3.0.
J'ai essayé de frapper une méthode Java d'ABCL
J'ai essayé de créer une application de clonage LINE
J'ai essayé de mettre en place un référentiel distant pour Maven
J'ai essayé de développer un site Web pour enregistrer les dépenses.
J'ai essayé d'implémenter un serveur en utilisant Netty
J'ai essayé de casser le bloc avec java (1)
J'ai essayé d'exécuter Java dans un terminal Mac
[Petite histoire] J'ai essayé de rendre java ArrayList un peu plus pratique
J'ai essayé d'utiliser une connexion à une base de données dans le développement Android
J'ai essayé d'exécuter Autoware
J'ai essayé d'utiliser Gson
J'ai essayé QUARKUS immédiatement
Je veux utiliser une petite icône dans Rails
J'ai essayé de créer une compétence Clova en Java
J'ai essayé de créer une fonction de connexion avec Java
J'ai essayé d'utiliser TestNG
J'ai essayé d'utiliser Log4j2 sur un serveur Java EE
J'ai essayé Spring Batch
J'ai essayé d'utiliser Galasa
J'ai essayé OCR de traiter un fichier PDF avec Java
J'ai essayé node-jt400 (Programmes)
J'ai essayé node-jt400 (exécuter)
J'ai essayé de gratter un graphique boursier en utilisant Java (Jsoup)
J'ai essayé node-jt400 (Transactions)
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
J'ai essayé d'utiliser le référentiel GitHub comme serveur de bibliothèque
J'ai essayé d'ajouter une ligne de séparation à TabLayout sur Android
J'ai essayé de moderniser une application Java EE avec OpenShift.
[Rails] J'ai essayé de créer une mini application avec FullCalendar
J'ai essayé JAX-RS et pris note de la procédure
J'ai essayé de construire l'environnement petit à petit en utilisant docker
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
J'ai essayé d'implémenter une application web pleine de bugs avec Kotlin
J'ai créé un client RESAS-API en Java
J'ai essayé de créer un environnement de développement padrino avec Docker
J'ai essayé OCR de traiter un fichier PDF avec Java part2
J'ai essayé node-jt400 (Construction de l'environnement)
J'ai essayé DI avec Ruby
J'ai essayé node-jt400 (écriture IFS)
J'ai essayé node-jt400 (mise à jour SQL)
J'ai créé une application de chat.
J'ai essayé d'utiliser azure cloud-init
J'ai essayé la machine Spring State
J'ai essayé Drools (Java, InputStream)