es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Uso de archivos Docker en GitHub Actions

Quiero usar pandoc para generar archivos PDF a partir de archivos Markdown en una acción de Github. Con este propósito, tenía la intención de usar un contenedor Docker existente para mejorar el rendimiento. Pero desafortunadamente, no pude simplemente cambiar entre un ubuntu-latest nativo y pandoc/latex:2.9 agregando una referencia de contenedor correspondiente (eliminando el # en la línea 6). En este caso, recibí un mensaje de error inesperado que no ocurrió sin el contenedor de pandoc.

name: Ejecutar_pandoc
on: [push]

jobs:
  Ejecutar_pandoc:
    runs-on: ubuntu-latest
    #container: pandoc/latex:2.16

steps:
  - name: Ilustrar el problema
    run: |
         echo "Hola mundo"
         dirlist=(`ls *`)
Ejecutar echo "Hola mundo"
Hola mundo
/__w/_temp/2ac5de2c-2847-4b00-8a97-ba3bb034898e.sh: línea 2: error de sintaxis: «(» inesperado
Error: Proceso finalizado con el código de salida 2.
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que agregar el # en la línea 6 comenta la línea container, lo que significa que la Acción de Github se ejecutará en la máquina host (ubuntu-latest) y no dentro del contenedor Docker especificado (pandoc/latex:2.16). Sin embargo, cuando se descomenta la línea container, se produce un error de sintaxis inesperado.

    Este error podría estar relacionado con el hecho de que la variable dirlist se inicializa utilizando una sustitución de comandos que incluye un carácter de acento grave () que podría interpretarse de diferentes formas según el entorno de shell. Utilizar la sintaxis$()` en lugar de los acentos graves debería evitar este problema:

    name: Execute_pandoc
    on: [push]
    
    jobs:
      Run_pandoc:
        runs-on: ubuntu-latest
        container: pandoc/latex:2.9
    
        steps:
          - name: Ilustrar el problema
            run: |
                 echo "Hola Mundo"
                 dirlist=$(ls *)
    

    Si el error de sintaxis persiste, podría estar relacionado con las diferencias entre los entornos del host y el contenedor, o con alguna otra configuración específica requerida por el contenedor. Solucionar este problema podría requerir más información sobre el mensaje de error o sobre el contenedor mismo.

Comments are closed.