No se detectaron enlaces de volumen en Pycharm al implementar scripts a través del intérprete Docker

No se detectaron enlaces de volumen en Pycharm al implementar scripts a través del intérprete Docker

Tengo configurado el enlace de volumen asignando algunas rutas diferentes a mi contenedor Docker. Tengo el complemento Docker configurado en Pycharm Pro y el intérprete del contenedor configurado como mi intérprete de Python. Puedo implementar mis scripts de Python usando el intérprete de Docker sin ningún problema (en términos de paquetes y dependencias creadas en la imagen de Docker).

Sin embargo, al implementar scripts e intentar acceder a archivos almacenados en mi máquina local mediante enlaces de volumen, no los encuentra. Cuando abro un shell de depuración interactivo en pycharm y ejecuto os.path.exist, devuelve True para las rutas principales de los enlaces de volumen (dentro del contenedor) pero devuelve False para cualquier archivo o directorio que se supone debe estar asignado allí desde mi máquina local.

Esto es extraño porque los enlaces de volumen están activos, lo he verificado de varias maneras:

  1. Puedo ver la ventana de herramientas Docker de Pycharm enumerando los enlaces correctamente

  2. Puedo ver los archivos mapeados que aparecen en el contenedor cuando los reviso desde la terminal.

  3. También puedo abrir una terminal en mi contenedor e iniciar Python Shell y ejecutar os.path.exist. Esto también devuelve True, lo que confirma que los directorios están asignados y se encuentran en las rutas que especifiqué en mis enlaces de volumen.

¿Por qué no puedo acceder a mis enlaces de volumen cuando implemento scripts de Python a través del intérprete Docker de Pycharm, aunque de lo contrario los scripts funcionan bien?

Información del sistema:

Versión de Pycharm: Pycharm Profesional 2019.1.2

Versión de Docker: 2.0.0.3

Sistema operativo de la máquina local: macOS 10.13.4 High Sierra

Sistema operativo Docker: Ubuntu 16.04

Respuesta1

Resulta que el complemento Docker para Pycharm no se adjunta a los contenedores en ejecución existentes cuando implemento un script (aunque, de una manera un tanto engañosa, tiene una ventana de herramientas Docker que enumera los contenedores en ejecución y muestra sus enlaces de volumen como si se usaran para la implementación). ). En cambio, lanza un nuevo contenedor a partir de la imagen cada vez que implementa un script. Entonces, si desea vincular volúmenes a estas instancias de contenedores temporales cada vez que inicia el script, debe navegar hasta Ejecutar/Editar configuraciones y establecer para cada script los enlaces de volumen, en 'Configuración del contenedor Docker'. No sabía que estos eran los enlaces de volumen utilizados para la implementación en lugar de los configurados en la ventana de herramientas Docker en el contenedor en ejecución.

información relacionada