Как я могу использовать Testcontainers для создания Dockerfile?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу использовать Testcontainers для создания Dockerfile?

Сообщение Anonymous »

Я хочу создать приложение. Для тестирования он использует тест-контейнеры. Сборка будет работать на CI и на машинах разработчиков. Dockerfile более или менее:

Код: Выделить всё

FROM amazoncorretto:17-alpine as builder
add . .
run ./gradlew build

from amazoncorretto:17-alpine
copy --from=builder build/libs/*.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
И я запускаю сборку с помощью docker build.
Часть сборки ./gradlew запускает тесты с помощью контейнеров Tests и использует

Код: Выделить всё

val sftpDocker = GenericContainer(DockerImageName.parse("atmoz/sftp:alpine"))
И он возвращает

java.lang.IllegalStateException: не удалось найти допустимую среду Docker. Просмотрите журналы и проверьте конфигурацию.

Я знаю, что:
  • В Testcontainers есть свое собственный клиент API-интерфейса докера и не требует установки докера внутри контейнера Alpine 3.
  • Кто-то сделал это, используя образ «docker:20.10.14-dind». Но я не знаю, как это подходит для моей проблемы. 4
  • Я могу смонтировать /var/run/docker.sock во время запуска Docker... но я использую команду RUN внутри файла dockerfile и сборки docker... вместо этого
  • Я могу предоставить DOCKER_HOST, а тестовые контейнеры должны использовать шлюз по умолчанию Айпи адрес. Но это менее безопасно, чем использование сокета.
Итак, есть ли способ использовать сокет в этой настройке? Если нет, то как мне запустить Docker моего хоста, чтобы открыть TCP вместо сокета?

Подробнее здесь: https://stackoverflow.com/questions/743 ... dockerfile
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»