我学习了github和docker的基础知识,并且在我的环境中都运行良好。在我的服务器上,我有项目目录,每个目录都有一个docker-compose.yml来运行必要的容器。这些项目目录还具有该特定应用程序的实际源文件,这些文件在启动时映射到容器内的虚拟位置。
我现在的问题是如何创建一个专业工作流程来封装所有这些?整个目录(包括docker-compose文件)是否应该存在于github上?因此,每次更改时,我将代码推送到我的远程,SSH到服务器,提取最新文件并重建容器。这种重建当然意味着每次从dockerhub中提取所需的图像。
答案 0 :(得分:0)
整个目录(包括docker-compose文件)是否应该存在于github上?
最佳做法是保留所有源代码,包括dockerfiles,configuration ... versioned。因此,您应该将所有源代码,dockerfile和dockercompose放在git reporitory中。这对于具有docker镜像的github上的项目非常常见。
因此,每次更改时,我都会将代码推送到我的远程,SSH连接到服务器,提取最新文件并重建容器
理想情况下,应使用Jenkins等工具将此流程封装在CI工作流程中。您基本上将代码推送到git存储库, 它会触发编译代码的jenkins作业,构建图像并将图像推送到docker注册表。
这种重建当然意味着每次从dockerhub中提取所需的图像。
Docker非常智能,可以缓存先前已经拉过的基本图像。因此,它只会在第一次构建时拉一次基础图像。