Gitlab-runner с помощью shell executor запускает команду Docker

С Spring 4.1 и выше вы можете возвращать почти все что угодно (например, картинки, PDF-файлы, документы, банки, молнии и т. д.) довольно просто без каких-либо дополнительных зависимостей. Например, следующим способом может быть способ возврата изображения профиля пользователя из MongoDB GridFS:

@RequestMapping(value = "user/avatar/{userId}", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<InputStreamResource> downloadUserAvatarImage(@PathVariable Long userId) {
    GridFSDBFile gridFsFile = fileService.findUserAccountAvatarById(userId);

    return ResponseEntity.ok()
            .contentLength(gridFsFile.getLength())
            .contentType(MediaType.parseMediaType(gridFsFile.getContentType()))
            .body(new InputStreamResource(gridFsFile.getInputStream()));
}

Что нужно отметить:

  • ResponseEntity с InputStreamResource как возвращаемый type
  • Создание стиля построителя ResponseEntity

С помощью этого метода вам не нужно беспокоиться об автоподготовке в HttpServletResponse, бросая IOException или копируя данные потока.

0
задан user3478624 1 March 2019 в 06:27
поделиться

1 ответ

Поскольку проект имеет gitlab-ci.yml вместо .gitlab-ci.yml, gitlab-runner пропускает мой конфигурационный файл и использует конфигурацию по умолчанию, которая запускает команду docker, в то время как я устанавливаю executor для shell. имя моего файла не начинается с "." , gitlab-runner игнорирует мой конфиг.

0
ответ дан user3478624 1 March 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: