与合作者共享Docker图像



我必须与在公司外工作的合作者共享一个docker映像(Spring引导应用程序(。我需要阻止访问源代码。我试图将其作为一个.tar文件共享,该文件包含docker映像中的jar,但据我所知,这不会阻止对源代码的访问。第二个解决方案是将这个作为私人回购推送到Docker Hub,并只授予他访问权限,但我认为源代码也可以是访问权限。

对于这种情况,我还有其他解决方案吗?

谢谢。

镜像在Docker Hub中作为私有镜像或tar文件并不重要,在这两种情况下,如果可以提取镜像,则可以在提取镜像的机器中使用docker save再次导出。

您最多可以使用多阶段构建(如果您也使用Docker构建jar文件(,这样一旦生成jar文件,就会出现一个仅包含JRE和jar的新映像。

类似的东西,并且将根据您的实现细节而有很大的不同:

FROM openjdk:latest
# Build your image
FROM openjdk:11-jre
COPY --from=0 /build/app.jar ./
# runtime environment, CMD, etc

这不会阻止第三方从Docker镜像中获取JAR文件并对其进行反编译,但会阻止用户读取干净的代码。

更复杂的是,你将不得不参考Java模糊器,有很多免费和商业的产品可以在网上获得。

只有你COPY到Docker镜像中的东西才会出现在其中

FROM openjdk:17
COPY target/app.jar /app.jar
CMD java -jar /app.jar

这些only包含一些基本的Linux发行版、JDK和jar文件;它们不包含任何应用程序源,因为它不是中的CCD_

正如@MarcSances在他们的回答中指出的那样,这与分发jar文件一样安全;反编译它很简单,你会得到相对可读的结果,但这不是";分发源">本身。(与Javascript、Python、PHP或Ruby脚本应用程序相比,运行应用程序的唯一方法是实际拥有其源代码;与C++、Go或Rust相比,在C++、Go和Rust中,您有一个独立的可运行二进制文件,更难反编译。(

最新更新