我们正在考虑使用docker进行构建(主要是golang和C ++),但我们的生产不运行docker,它运行的是ubuntu 16。
我们正在考虑在docker中编译二进制文件并将其部署在生产中。
这是否可取?我们应该注意哪些问题?
此致
沙迪亚
答案 0 :(得分:1)
Docker对二进制文件的编译过程几乎没有任何影响,它只是帮助您对您使用的工具和库进行沙箱处理。对于您的情况,我建议您使用ubuntu:16.04作为基本映像,以便与之前的构建环境具有最佳相似性。首先要关注的是您的组织是否信任该官方形象,因此您应该向上级管理层核实一件事。
通过在生产中使用Docker,甚至可以通过构建另一个具有已编译二进制文件的容器以及所需的最小运行时库,您甚至可以获得更稳定的方法。这将帮助您获得几乎相同的环境,允许除Ubuntu 16.04之外的不同主机操作系统。请注意,内核仍然可能存在差异,因此这是值得关注的差异之一。
在生产中使用Docker是一个更广泛的主题,因为您可以直接运行它,使用orchestration tool或使用AWS ECS等服务。