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

438
Views
Docker/CI: obtenga acceso a la aplicación nodeJS, que se crea en otra etapa

En mi canalización de CI (gitlab) hay una etapa de compilación y de prueba final a final. En la etapa de construcción se crearán los archivos de la aplicación. Luego quiero copiar los archivos generados al contenedor e2e_testing para hacer algunas pruebas con esta aplicación.

¿Cómo copio los archivos generados (/opt/project/build/core/bundle) a la imagen?

Para las pruebas de e2e, quiero usar nightwatchJS; vea la imagen de la ventana acoplable e2e a continuación. ¿Tal vez sea posible usar la imagen de compilación dentro de la imagen e2e?

Lo que debo hacer es probar nightwatchJS e2e para la aplicación nodeJS generada


Mi intento

Copie los archivos generados en el contenedor e2e_testing con el comando docker cp .

 build: stage: build before_script: - meteor build /opt/project/build/core --directory script: - cd /opt/jaqua/build/core/bundle - docker build -t $CI_REGISTRY_IMAGE:latest . after_script: - docker cp /opt/project/build/core/bundle e2e_testing:/opt/project/build/core/

Pero esto no funciona, ya que la siguiente etapa (e2e) creará un contenedor a partir de la imagen e2e:latest . Por lo tanto, en este contenedor no existe una carpeta de paquetes, por lo que este script de muestra está fallando.

 e2e: image: e2e:latest stage: e2e before_script: - cd /opt/project/build/core/bundle && ls -la script: # - run nightwatchJS to do some e2e testing with the build bundle

e2e:última imagen Dockerfile

 FROM java:8-jre ## Node.js setup RUN curl -sL https://deb.nodesource.com/setup_4.x | bash - RUN apt-get install -y nodejs ## Nightwatch RUN npm install -g nightwatch

Se crea un contenedor llamado e2e_testing a partir de esta imagen y se ejecuta todo el tiempo. Entonces, en el momento en que se ejecuta la canalización de CI, el contenedor ya existe.

Pero en el momento en que se crea esta imagen, los archivos de la aplicación no existen, ya que se generan en la etapa de compilación. Entonces no puedo poner esos archivos en la imagen de la ventana acoplable usando un Dockerfile.

Entonces, ¿cómo puedo obtener acceso a los archivos generados en la etapa de compilación en la etapa e2e?

¿O es posible usar la imagen de compilación ($CI_REGISTRY_IMAGE:latest) dentro de la imagen de vigilancia nocturna (e2e)

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

¿Qué pasa con el uso de artefactos ?

Básicamente, mueva la carpeta del paquete a la raíz de su repositorio después de la compilación y defina la carpeta del paquete como un artefacto. Luego, desde el trabajo e2e, la carpeta del paquete se descargará de los artefactos de la etapa de construcción y podrá usar su contenido. He aquí un ejemplo de cómo hacer esto:

 build: stage: build before_script: - meteor build /opt/project/build/core --directory script: # Copy the contents of the bundle folder to ./bundle - cp -r /opt/project/build/core/bundle ./bundle - cd /opt/jaqua/build/core/bundle - docker build -t $CI_REGISTRY_IMAGE:latest . artifacts: paths: - bundle e2e: image: e2e:latest stage: e2e dependencies: - build script: - mkdir -p /opt/project/build/core/bundle - cp -r ./bundle /opt/project/build/core/bundle # - run nightwatchJS to do some e2e testing with the build bundle

No sé si todavía necesita la parte de docker build , así que la dejé allí en caso de que quiera empujar ese contenedor a alguna parte.

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!