对于我当前的python项目,我希望一次运行多个“程序”(例如爬虫程序、索引器、web服务器、postgresql服务器等)。 所有这些python程序都在同一目录中共享一些公共模块。我不想为每个程序创建不同的目录,因为这需要我在不同的地方有这些通用模块的多个副本。我不能在同一个目录中为每个程序设置多个DockerFile(我不这么认为?)。我很确定我想使用docker compose,但在我从单独的docker文件构建了单独的图像之后
在这种情况下我该怎么办?我很确定我想的都是错的,因为我无法想象这是一个不寻常的问题
谢谢
在纯Docker空间中有两个简单的答案
您可以做的第一件事是将所有代码打包到一个映像中:
您可以在
docker run
命令或docker-compose.yml
文件中重写命令部分,以便从同一映像运行多个容器或者,您可以在同一目录中拥有多个DockerFile
而那些Dockerfiles文件可能会更加有限
使用哪种方法取决于您的代码库。如果是在解释语言中,几乎所有的代码都是共享的,唯一真正的区别是您正在运行的命令,那么最好只有一个图像。但是,如果每个依赖项的库依赖项明显不同,或者如果需要为每个进程构建单独的二进制文件,则为每个进程创建单独的映像更有意义
在此场景中可以使用docker compose。假设您希望在节点应用程序的情况下运行两个容器测试并启动
docker-compose.yml
Dockerfile.dev
使用
docker-compose up
构建映像并运行容器相关问题 更多 >
编程相关推荐