Multiple images per one job

Let's say I need to run a configured docker container running keycloak which needs some files to be mounted. And I also need to run some integration tests that uses this container. What's the best practice to solve this issue ?

test:
  stage: test
  image: node:lts-alpine
  script:
    - docker run -p 8080:8080 -v file:file jboss/keycloak
    - npm test

The job above won't work as we need docker to run it. even with dind won't solve it. Also specifying keycloak in the services section won't work as we can't specify the mounting options..