Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

299
Views
Traducir docker ejecutar en subcomponentes

Tengo este comando de ejecución de la ventana acoplable:

 docker run --rm --name=gitleaks \ -v "/keys/ssh/values:/root/.ssh" \ zricethezav/gitleaks \ --ssh-key='bucket' \ --repo "$line"

Lo traduje a esto:

 docker create zricethezav/gitleaks --name=gitleaks docker cp /keys/ssh/values gitleaks:/root/.ssh docker start gitleaks --ssh-key='bucket' --repo "$line"

pero me da este error:

 Error: No such container:path: gitleaks:/root unknown flag: --ssh-key

¿Alguien sabe dónde me equivoqué? En última instancia, llamo a docker run desde un contenedor en ejecución y tengo problemas para compartir archivos, por lo que trato de hacer que docker cp funcione.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

El problema es con la sintaxis de su primer y segundo comando.

 docker create zricethezav/gitleaks --name=gitleaks

--name debe estar antes del nombre de la imagen ; de lo contrario, docker create lo interpretará como un argumento de COMANDO en lugar de un indicador de OPCIONES .

 docker start gitleaks --ssh-key='bucket' --repo "$line"

Entiendo que desea ejecutar la imagen con los parámetros --ssh-key y --repo, sin embargo, no es posible con el comando de docker start . Si desea que estos parámetros pasen al proceso ejecutado por la imagen, debe pasar estos parámetros al comando docker create o docker run después del nombre de la imagen.

Así que deberías hacer:

 # Mind the --name before the image name docker create --name=gitleaks zricethezav/gitleaks --ssh-key='bucket' --repo "$line" docker cp /keys/ssh/values gitleaks:/root/.ssh docker start gitleaks

Explicaciones para docker create:

El uso de docker create es:

 docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

Donde los indicadores de OPTIONS deben especificarse antes de IMAGE , y todo lo que sigue a IMAGE se interpretará como COMMAND y ARG... .

cuando estas corriendo

 docker create zricethezav/gitleaks --name=gitleaks

De hecho, está pasando --name=gitleaks como COMMAND , que anulará el comando de imagen predeterminado (el que normalmente proporciona CMD en Dockerfile), donde probablemente desee pasarlo como OPTIONS . Por ejemplo, si ejecuta:

 docker create alpine --name=foobar docker create --name=foobar alpine

docker ps -a salida se verá así:

 IMAGE COMMAND NAMES alpine "/bin/sh" foobar alpine "--name=foobar" quirky_varahamihira

Si desea pasar OPTIONS y COMMAND , debe especificar OPTIONS antes del nombre de la imagen y COMMAND después del nombre de la imagen.

over 4 years ago · Santiago Trujillo Report

0

Debe usar la ID del contenedor docker, no su nombre para la copia.

El ID se devuelve al crear el contenedor, por lo que:

 ID=$(docker create zricethezav/gitleaks --name=gitleaks) docker cp /keys/ssh/values ${ID}:/root/.ssh

Si ya ha creado el contenedor, puede:

 ID=$(docker inspect gitleaks --format="{{.ID}}")

Pero, @mihai tiene razón y no estoy seguro de cómo podrá configurar el contenedor para comenzar.

Creo que el enfoque correcto para esto es FROM:gitleaks y crea tu propia imagen (Dockerfile) que agrega tus claves.

La documentación proporciona una explicación para usar un token de GitHub para acceder a repositorios privados:

https://github.com/zricethezav/gitleaks#docker-usage-examples

over 4 years ago · Santiago Trujillo Report

0

tl;dr La traducción ideal sería

 docker create --rm --name=gitleaks zricethezav/gitleaks --ssh-key='bucket' --repo "$line" docker cp /keys/ssh/values gitleaks:/root/.ssh docker start gitleaks

(X) 1. docker create zricethezav/gitleaks --name=gitleaks

Su traducción no coincide con la descripción de uso de docker create .

 docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

Por lo tanto, debe cambiar su opción --name=gitleaks con el nombre de la imagen:

 docker create --name=gitleaks zricethezav/gitleaks

(✓) 2. docker cp /keys/ssh/values gitleaks:/root/.ssh

Esto se ejecutará con éxito.

(X) 3. docker start gitleaks --ssh-key='bucket' --repo "$line"

Esto arrojará un error que dice:

 unknown flag: --ssh-key

De acuerdo con la descripción de uso de docker start , no es posible pasar command ni argument a un contenedor ya existente.

Sin embargo, tiene dos alternativas para superar este problema:

  1. --ssh-key='bucket' --repo "$line" a docker create --name=gitleaks zricethezav/gitleaks

  2. O si estás aburrido, puedes probar esto en su lugar.

como puede ver, tampoco pude traducir el indicador --rm de docker run a los 3 subcomandos, no estoy seguro de dónde poner eso

La opción --rm está disponible para docker create , por lo que debe colocarla allí. Y también, como mencionó Mihai , debe pasar sus argumentos ( --ssh-key etc.) mientras ejecuta docker create :

 docker create --rm --name=gitleaks zricethezav/gitleaks --ssh-key='bucket' --repo "$line"
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!