Docker 容器的入口点依赖于本地文件系统,而不是在映像中



我正在处理一个从通用映像创建的 docker 容器。此容器的入口点依赖于本地文件系统中的文件,而不是通用映像中的文件。我的 docker 撰写文件看起来像这样:

service_name:
image: base_generic_image
container_name: container_name 
entrypoint: 
- "/user/dlc/bin"
- "-p"
- "localFolder/fileName.ext"
- more parameters

我面临的挑战是删除此依赖项并在运行时将其添加到base_generic_image中,以便我可以独立部署它。我应该将此文件添加到基本通用映像中,然后继续(其他人不需要此文件(,还是应该在创建容器时执行此操作,如果是这样,那么最好的方法是什么。

应为应用程序的每个部分创建单独的映像。 如果您愿意,这些可以基于基本映像;Dockerfile 可能看起来像

FROM base_generic_image
COPY dlc /usr/bin
CMD ["dlc"]

您的 Docker 撰写设置可能为每个组件都有一个子目录,可能如下所示

servicename:
image: my/servicename
build:
context: ./servicename
command: ["dlc", "-p", ...]

一般来说,Docker 卷和绑定挂载是用于持久数据的好东西(当绝对需要时;具有外部数据库的无状态容器通常更容易管理(、从容器中获取日志文件以及将复杂的配置推送到容器中。 通常正在运行的实际程序应内置到基本映像中。 目标是,您可以获取映像并将其docker run到干净的系统上,而无需在其上安装任何开发环境。

最新更新