docker-compose icon indicating copy to clipboard operation
docker-compose copied to clipboard

spawn docker-compose ENOENT on Gitlab CI

Open axeh opened this issue 3 years ago • 1 comments

When I run tests(jest) for the application inside Gitlab CI this error is manifested:

spawn docker-compose ENOENT at node_modules/testcontainers/dist/docker-compose/functions/docker-compose-up.js:37:15 at Generator.throw () at rejected (node_modules/testcontainers/dist/docker-compose/functions/docker-compose-up.js:6:65)

I have some docker-compose file and running it locally everything works OK. Gitlab runner is configured like docker runner and can use docker-in-docker. This is the setup of docker runner (https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-in-docker)

On Docker runner, we installed docker-compose so everything is working correctly. If I run "docker-compose" command from GitLab CI everything works. But using the inside node app crashes the test execution.

GitLab CI looks something like

  image: docker:22.06-rc
  variables:
    DOCKER_DRIVER: overlay2
    DOCKER_TLS_CERTDIR: "/certs"
  services:
     - name: docker:22.06-rc-dind
  before_script:  
    - docker info
    - docker-compose --version
    - apk add --update npm
  script:
    - npm install
    - npm test

inside npm test it looks like

 const composeFilePath = path.resolve(__dirname, "../../somedirectory");
 const result = await upAll({ cwd: composeFilePath, log: true });

axeh avatar Sep 28 '22 07:09 axeh

I think that you are passing to cwd an invalid path and docker-compose can´t found the docker-compose.yaml file. Irecommend you try with absolute path in string.

sgavila avatar Dec 20 '22 20:12 sgavila