Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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 compose.yml”应该在自己的存储库中吗?_Docker_Docker Compose - Fatal编程技术网

“docker compose.yml”应该在自己的存储库中吗?

“docker compose.yml”应该在自己的存储库中吗?,docker,docker-compose,Docker,Docker Compose,我正在用Vue.js和Express API构建一个小型web应用程序,每个应用程序都有自己的Dockerfile。我目前能够构建这些图像并将它们发布到一个私有Docker存储库,然后将它们拉到虚拟机上并运行它们。我想添加Docker Compose,我经常看到它与服务的代码一起出现,例如 |--.. |__api/ |__client/ |__docker-compose.yml 但这样看来,您无法将图像发布到存储库,因为Docker Compose构建图像并运行容器,因此我的虚拟机需要提取

我正在用Vue.js和Express API构建一个小型web应用程序,每个应用程序都有自己的
Dockerfile
。我目前能够构建这些图像并将它们发布到一个私有Docker存储库,然后将它们拉到虚拟机上并运行它们。我想添加Docker Compose,我经常看到它与服务的代码一起出现,例如

|--..
|__api/
|__client/
|__docker-compose.yml
但这样看来,您无法将图像发布到存储库,因为Docker Compose构建图像并运行容器,因此我的虚拟机需要提取所有代码,而我认为它应该只需要图像,然后知道如何运行它们


那么我是不是认为Docker作曲错了?我几乎没有这方面的经验;我只是想找出运行容器的最佳方法,似乎我应该能够在虚拟机上运行容器,而无需将所有源代码下载到该虚拟机。

您可以使用docker compose并仍然发布单个图像

我猜API和客户端分别有自己的Docker文件。 所以基本上你有三个选择:

  • 让docker通过构建图像
  • 只需使用和引用图像即可 确保它们在安装之前就已经安装好了
  • 这样docker compose将构建这些图像并将它们 放置在“图像”选项下的名称和标记
  • 就我而言,这些都是有效的选择。如果你和我一起去 选项二我会编写一个小的Makefile或脚本来确保
    这些图像是为了方便而放置的。

    如果这些图像是发布的,您不想让docker compose文件在其自己的repo中可用吗,因为如果要在其他地方运行,您需要自己运行容器,或者重写docker compose文件,对吗?如果你只是引用docker镜像,而不是构建它们,你完全可以将它们放在不同的存储库中。