Docker ENTRYPOINT在卷装载后运行

我的Dockerfile有一个脚本在入口点上运行。 容器计划在我的代码所在的卷装上运行,一旦容器装上卷,它就需要运行几个命令。

但是,从运行容器时得到的错误,我相信Docker卷挂载发生在ENTRYPOINT脚本之后。

一旦容器启动,我确定可以使用docker exec选项运行命令。 但是这使得更多的运行命令行。 是否有任何解决方法,甚至通过使用docker撰写?

Dockerfile:

FROM my-container WORKDIR /my-mount-dir ADD startup-script.sh /root/startup-script.sh ENTRYPOINT ["/root/startup-script.sh"] 

docker运行:

docker run -itd -v / home / user / directory:/ my-mount-dir build-container

注意: startup-script.sh包含应该在挂载的目录文件上运行的命令。

我不知道这是否是你想要的解决scheme,但我一直在使用这个运行命令,它使用cat命令来提供我的script.sh到容器:

 docker run -it --name=some_name --rm \ -v "host/path:/path/inside/container" \ image_name \ /bin/bash -c "$(cat ./script.sh)" 

在这种情况下,脚本在安装完成后运行。 我确信这是因为我已经使用脚本中已装入卷的文件。