У меня есть API в nodeJs, которые работают под микро-сервисами.
Пока это работает, я хочу, чтобы у меня была возможность запустить юнит-тест (мокко) на этих изображениях.
докер-compose.yml:
version: '3'
services: db:
image: mongo
ports:
- 27017:27017
db-seeds:
build: ./services/mongo-seeds
links:
- db
gateway:
build: ./services/gateway
ports:
- 4000:4000
depends_on:
- A
- B
- C
A:
build: ./services/A
ports:
- 4003:4000
depends_on:
- db
B:
build: ./services/B
ports:
- 4001:4000
depends_on:
- db
C:
build: ./services/C
ports:
- 4002:4000
depends_on:
- db
Один из DockerFile:
FROM node:latest
COPY . /src
WORKDIR /src
RUN yarn
EXPOSE 4000
CMD yarn start
То, что я до сих пор делал, - это создание другого файла docker-compose, который будет запускать другой файл docker (DockerFile.test):
FROM node:latest
COPY . /src
WORKDIR /src
RUN yarn
EXPOSE 4000
CMD yarn test
также пытался:
FROM node:latest
COPY . /src
WORKDIR /src
RUN yarn
EXPOSE 4000
CMD yarn start
RUN sleep 240
CMD yarn test
Они оба терпят неудачу, в этот момент тест пряжи запускается до того, как мой шлюз и серверы работают. Что я хочу сделать, так это запустить мои серверы, а затем запустить мой модульный тест в образах, но я новичок в докере и не знаю, как это реализовать.
тест пряжи:
"тест": "NODE_ENV = тест ./node_modules/.bin/mocha"