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

513
Views
¿Cómo compartir la clave SSH a través de los secretos de Docker para acceder a los repositorios privados de Github?

Estoy usando la sugerencia de esta publicación para implementar los secretos de Docker para poder usar una clave SSH local para autenticar el acceso a Github para mis contenedores. Estoy en MacOS y no uso Docker swarm. He aquí mi arreglo:

docker-compose.yml

 version: '3.1' services: [servicename]: secrets: - ssh_private_key [...] secrets: ssh_private_key: file: ~/.ssh/id_rsa

Dockerfile

 FROM python:3.7 as intermediate RUN mkdir /root/.ssh/ RUN ln -s /run/secrets/ssh_private_key /root/.ssh/id_rsa RUN touch /root/.ssh/known_hosts RUN ssh-keyscan github.com >> /root/.ssh/known_hosts COPY requirements_private_repos.txt ./ RUN pip install --no-cache-dir -r requirements_private_repos.txt

Cuando intento ejecutar docker-compose build y usar la clave SSH para extraer datos de repositorios remotos privados, aparece el siguiente error:

 Permission denied (publickey). fatal: Could not read from remote repository.

Puedo acceder de forma remota a la imagen de la ventana acoplable y ver que el secreto se crea y se completa en /run/secrets/ssh_private_key .

¿Por qué el enlace no funciona cuando se usa en Dockerfile? Si Docker Secrets no es el método correcto, ¿hay una mejor manera de compartir una clave SSH de MacOS a Docker?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No puede usar secretos de tiempo de ejecución en la frase de compilación. Puede usar compilaciones de varias etapas para copiar el secreto en la imagen para que se descarte en la siguiente etapa o usar los nuevos secretos de tiempo de compilación que se introdujeron en Docker 18.09.

Para el método de etapas múltiples, puede hacer lo siguiente:

 FROM python:3.7 as intermediate COPY id_rsa /root/.ssh/id_rsa # your private key must be on the build context RUN touch /root/.ssh/known_hosts RUN ssh-keyscan github.com >> /root/.ssh/known_hosts COPY requirements_private_repos.txt ./ RUN pip install --no-cache-dir -r requirements_private_repos.txt FROM python:3.7 COPY --from=intermediate XXXX YYYY # copy your modules, this image won't have the ssh private key

Para el nuevo método, puede hacer lo siguiente, no he probado este método yo mismo (se necesita un agente ssh que se ejecute en el host):

 FROM python:3.7 as intermediate RUN touch /root/.ssh/known_hosts RUN ssh-keyscan github.com >> /root/.ssh/known_hosts COPY requirements_private_repos.txt ./ RUN --mount=type=ssh pip install --no-cache-dir -r requirements_private_repos.txt

Luego construye tu imagen con:

 docker build --ssh default . -t myimage

Consulte la documentación para obtener más información sobre el nuevo método:

https://docs.docker.com/develop/develop-images/build_enhancements/#new-docker-build-secret-information

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!