Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 如何为GPL合规性实施构建验证过程_Docker_Compilation - Fatal编程技术网

Docker 如何为GPL合规性实施构建验证过程

Docker 如何为GPL合规性实施构建验证过程,docker,compilation,Docker,Compilation,我们以二进制和源代码的形式向客户提供开源库修复程序。根据GPL,我们应该提供编译脚本和对源代码的修改。 构建脚本逻辑:安装所需的软件包,克隆git存储库,应用补丁并构建它。 客户应该能够在干净的Ubuntu图像上执行同样的操作 如何实施使用我们的脚本/源并运行它的验证过程? 我是否应该在每次验证生成时使用VM并还原状态? 我应该使用一些docker映像还是其他东西。如果有docker可用,可以使用linux映像和构建脚本。假设您已经有了,您可以使用docker run运行构建脚本,例如 dock

我们以二进制和源代码的形式向客户提供开源库修复程序。根据GPL,我们应该提供编译脚本和对源代码的修改。
构建脚本逻辑:安装所需的软件包,克隆git存储库,应用补丁并构建它。 客户应该能够在干净的Ubuntu图像上执行同样的操作

如何实施使用我们的脚本/源并运行它的验证过程?
我是否应该在每次验证生成时使用VM并还原状态?

我应该使用一些docker映像还是其他东西。

如果有docker可用,可以使用linux映像和构建脚本。假设您已经有了,您可以使用
docker run
运行构建脚本,例如

docker run -i --rm --entrypoint /bin/sh mycontainer < myscript
docker run-i--rm--entrypoint/bin/sh mycontainer
其中,
mycontainer
是您的容器名称,
myscript
是您的构建脚本(安装依赖项并构建应用程序)的路径,并且指定了
--rm
以在退出后清理实例。在本例中,脚本是通过
stdin
提供的,但您可以将其包含在容器中并直接运行


如果使用或CI,则可以将自动生成添加到管道作业中,以便在git提交时自动运行它(例如每次更新主分支时)。如果已配置docker映像,则只需将作业添加到CI系统。

@sebash,谢谢您的回答。问题是,我应该用干净的操作系统模仿新用户。脚本应该安装所有dep数据包,然后启动构建。我不知道如何模拟干净的用户环境。新VM是一个沉重的方法。