背景
我们正在开发一个执行加密操作的Spring应用程序。项目的要求是此应用程序实现应独立于HSM特定的库(因为客户端可能具有任何HSM),因此我们使用SunPKCS11接口。 SunPKCS11接口需要一个HSM库文件的路径,该文件实现了常见的PKCS11接口。这样,任何具有库实现PKCS11接口的HSM都可以与应用程序一起使用。
当前状态
我们有用于测试HSM安装位置的主机。 HSM安装程序还提供了实现PKCS11接口的库。我们计划使用Docker部署此应用程序。由于应用程序应独立于HSM库,因此我们创建了docker映像,其中未提及HSM特定信息。但是,我们已经使用docker-compose文件挂载了HSM的完整lib文件夹(存在PKCS11实现库)。当我们执行docker-compose up时,它会为属于HSM的库提供错误(尽管它已安装在lib文件夹中)。
加载共享库xxx.so时出错
问题
Dockerfile
FROM some/url/xxxbuild:openjdk8u151-alpine3.7-1.0.0
LABEL maintainer "Team"
ENV APP_USER myapp
ENV APP_HOME /opt/my/app
USER $APP_USER
RUN madir -p $APP_HOME/config
docker-compose文件
my-microservice:
image: my-microservice:1.1.0-SNAPSHOT
container_name: my-microservice-container
restart: on-failure
environment:
SERVER_PORT: 9999
JAVA_OPTS: -Dlog4j.configurationFile=/opt/gd/app/config/log4j2.xml
ports:
- 8888:9999
volumes:
- ./applicationSpecificFile:/opt/gd/app/config
- /opt/hsm/lib:/opt/hsm/lib <-- HSM Specific lib files
我是Docker和Linux的新手。让我知道以防万一我想提些什么。