The scenario it's the following:
I need run grunt serve
that serve my app in localhost:9000 in my process of continuous integration using a docker container, then I need run another container that, using the application served in the localhost:9000, executes a integration testing:
My gitlab.yml file
unit-testing:
image: karma-testing
script:
- npm install && bower install && karma start && grunt serve
cache:
paths:
- node_modules/
- bower_components/
behavior-testing:
image: protractor-ci
script:
- npm install protractor-cucumber-framework cucumber && xvfb-run --server-args='-screen 0 1280x1024x24' protractor protractor.conf.js
cache:
paths:
- node_modules/
- bower_components/
The first image run the grunt serve
task that serve my app in localhost:9000 and I want that the second image uses this running app for running the another script.
No, you can't do that. Jobs can run on different runners and you can't tell for sure if they are run in parallel or serial order.
You can and should run the grunt server in the same task as the one using it. A prepared docker image or special YAML features might be useful here.