Tengo la siguiente advertencia cuando inicio sesión en mi registro durante un proceso de integración continua (CI):
WARNING! Using --password via the CLI is insecure. Use --password-stdin. ¿Debería simplemente reemplazar --password con --password-stdin ?
De acuerdo con la documentación de la ventana acoplable :
Para ejecutar el comando de inicio de sesión de Docker de forma no interactiva, puede configurar el
--password-stdinpara proporcionar una contraseña a través de STDIN. El uso de STDIN evita que la contraseña termine en el historial del shell o en los archivos de registro.
Los siguientes ejemplos leen una contraseña de un archivo y la pasan al comando de inicio de sesión de la ventana acoplable mediante STDIN:
$ cat ~/my_password.txt | docker login --username foo --password-stdino
$ docker login --username foo --password-stdin < ~/my_passwordEl siguiente ejemplo lee una contraseña de una variable y la pasa al comando de inicio de sesión de la ventana acoplable mediante STDIN:
$ echo "$MY_PASSWORD" | docker login --username foo --password-stdinEl mismo comando de echo en un sistema basado en Windows (o cuando se ejecuta en una tarea de Azure Pipelines basada en vs2017-win2016 ) también genera una nueva línea adicional.
Una solución para esto es usar set /p , vea también pregunta + respuesta .
El comando completo será como:
echo | set /p="my_password" | docker login --username foo --password-stdin
Configuración en acciones de github:
echo ${{ secrets.DOCKER_TOKEN }} | docker login --username ${{ secrets.DOCKER_USERNAME }} --password-stdin