我正在使用从通用映像创建的docker容器。此容器的入口点取决于本地文件系统中的文件,而不取决于通用映像中的文件。我的docker-compose文件看起来像这样:
service_name:
image: base_generic_image
container_name: container_name
entrypoint:
- "/user/dlc/bin"
- "-p"
- "localFolder/fileName.ext"
- more parameters
我面临的挑战是在运行时删除此依赖项并将其添加到base_generic_image中,以便我可以独立部署它。我应该将此文件添加到基本的通用映像中,然后继续(其他文件不需要此文件),还是应该在创建容器时执行此操作,如果是,那么最好的处理方法是什么。
答案 0 :(得分:0)
您应该为应用程序的每个部分创建一个单独的图像。如果需要,这些可以基于基本图像; Dockerfile可能看起来像
myList.get(0)
-> 1,3
1,4
1,7
myList.get(1)
-> 2,12
2,23
2,0
您的Docker Compose设置可能为每个组件都有一个子目录,并且看起来像
FROM base_generic_image
COPY dlc /usr/bin
CMD ["dlc"]
通常,Docker卷和绑定挂载是用于持久性数据的好东西(绝对必要时;带有外部数据库的无状态容器通常更易于管理),将日志文件从容器中取出,并将复杂的配置推送到容器中。通常应将正在运行的实际程序内置到基本映像中。目的是您可以在没有任何开发环境的情况下,在干净的系统上拍摄图像并servicename:
image: my/servicename
build:
context: ./servicename
command: ["dlc", "-p", ...]
。