#java #docker
Вопрос:
У нас есть проект с конфиденциальной информацией, которую нельзя добавить в образ docker во время сборки.
Файл Dockerfile:
FROM openjdk:11.0.12-jre-slim
COPY target/security.jar /security.jar
ENTRYPOINT ["java","-jar","/security.jar"]
И в безопасности проекта у нас есть папка certs с файлами * .cer.
security/
src/ -- source files
certs/ -- .cer files
test1.cer
test2.cer
Dockerfile
Мы не можем включить эти файлы в изображение, потому что это конфиденциальная информация.
И мы попытались сделать это во время запуска контейнера:
docker run --entrypoint /bin/sh security -c 'cp certs/* certs/ amp;amp; java -jar /security.jar' security:latest
Но получил ошибку:
cp: cannot stat 'certs/*': No such file or directory
Есть ли способ это исправить?
Ответ №1:
Может быть, нужно посмотреть тома Docker? Некоторым нравится:
docker run <your_args> -v certs:/certs security:latest
Комментарии:
1. Та же ошибка, что и при запуске docker —entrypoint /bin/sh security -c ‘cp certs/* certs/ amp;amp; java -jar /security. сертификаты jar’ -v:/ безопасность сертификатов: последняя версия
2. У вас уже есть ТОЧКА входа в Dockerfile, поэтому запустите как: docker run -v сертификаты: / сертификаты безопасности: последняя версия
3. но лучше указать полный путь к смонтированному каталогу -v /home/user/certs:/certs
4. docs.docker.com/storage/volumes
5. Не могли бы вы посоветовать, что мне нужно добавить в общий доступ к файлам? папка сертификатов или повышение уровня?