docker容器的入口点取决于本地文件系统,而不在映像中

时间:2018-08-21 08:26:49

标签: docker docker-compose

我正在使用从通用映像创建的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中,以便我可以独立部署它。我应该将此文件添加到基本的通用映像中,然后继续(其他文件不需要此文件),还是应该在创建容器时执行此操作,如果是,那么最好的处理方法是什么。

1 个答案:

答案 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", ...]