Можно ли использовать Docker для временного создания тестовой среды? - PullRequest
0 голосов
/ 13 марта 2019

У меня есть служба node.js, которая хранит политики доступа, которые отправляются в открытый агент политики при запуске приложения. Политики могут быть тестами, но для этого их нужно запускать в открытой среде агента политики, которая не является частью моей службы. Есть ли способ запустить эти тесты при построении моего образа докера службы node.js? То есть изображение не будет построено, если все тесты не пройдут?

Итак, файл Docker может выглядеть примерно так:

FROM openpolicyagent/opa:latest
CMD ["test"]
# somehow check that all tests pass and if not return an error
FROM node:8
# node-related stuff

1 Ответ

0 голосов
/ 13 марта 2019

Вы можете использовать оператор RUN для желаемых шагов, например:

FROM <some_base_image>

RUN mkdir /tests
WORKDIR /tests
COPY ./tests .    
RUN npm install && npm run build && npm test

RUN mkdir /src
WORKDIR /src
COPY ./src .    
RUN npm install && npm run build

CMD npm start

Примечание: RUN выполняется во время построения изображения, в то время как CMD и ENTRYPOINT выполняются во время запуска контейнераиз встроенного изображения.

...