在dockerfile中使用带有tomcat:9.0.45-jdk8-adoptopenjdk-hotspot的docker映像时,如何将shell文件作为入口点运行?

在dockerfile中使用带有tomcat:9.0.45-jdk8-adoptopenjdk-hotspot的docker映像时,如何将shell文件作为入口点运行?,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我正在使用docker映像tomcat创建一个docker文件:9.0.45-jdk8-adoptopenjdk-hotspot。要运行dockerfile,我使用命令dockerrun-it-p8888:8080 tomcatcustom,这将打开tomcat服务器 我想运行另一个自定义的.sh文件以及运行docker映像时执行的tomcat服务器。如何在我创建的dockerfile中定义入口点,以便执行tomcat和.sh文件 或者还有其他选项吗?Dockerfile只能有一个执行的入口点,

我正在使用docker映像tomcat创建一个docker文件:9.0.45-jdk8-adoptopenjdk-hotspot。要运行dockerfile,我使用命令
dockerrun-it-p8888:8080 tomcatcustom
,这将打开tomcat服务器

我想运行另一个自定义的.sh文件以及运行docker映像时执行的tomcat服务器。如何在我创建的dockerfile中定义入口点,以便执行tomcat和.sh文件


或者还有其他选项吗?

Dockerfile只能有一个执行的入口点,但是没有任何东西可以阻止您将脚本作为入口点来运行自定义脚本和tomcat。 例如

如果您有一个带有

Dockerfile
custom.sh // your custom script
start.sh
其中
start.sh

#!/usr/bin/env bash
./custom.sh &
catalina.sh run
FROM tomcat:9.0.45-jdk8-adoptopenjdk-hotspot
COPY start.sh .
COPY custom.sh .
CMD "./start.sh"
Dockerfile

#!/usr/bin/env bash
./custom.sh &
catalina.sh run
FROM tomcat:9.0.45-jdk8-adoptopenjdk-hotspot
COPY start.sh .
COPY custom.sh .
CMD "./start.sh"
在这种情况下,
custom.sh
在后台执行(使用
&
),以便并行启动tomcat