簡體   English   中英

Dockerfile 與 Tomcat catalina.sh 運行不運行

[英]Dockerfile with Tomcat catalina.sh run does not run

我可以構建 Dockerfile。 當我執行 docker 運行 -it path-to-image/tomcat9:latest 並檢查日志時,沒有 catalina.out 並且運行失敗並獲取 /bin/sh: ["catalina.sh",: command not成立。

這是我的 Dockerfile

FROM gitlab-registry.gs.mil/gets-development/docker/openjdk11

USER root

# Copy Tomcat and start
ADD imageFiles/apache-tomcat-9.0.65.tar.gz /usr/local/
RUN mv /usr/local/apache-tomcat-9.0.65/ /usr/local/tomcat

ENV WORKPATH /usr/local
WORKDIR $WORKPATH

ENV CATALINA_HOME /usr/local/tomcat
ENV CATALINA_BASE /usr/local/tomcat

ENV PATH $PATH:$CATALINA_HOME/bin:$CATALINA_HOME/lib

EXPOSE 8080
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]

構建命令:

docker build -t gitlab-registry.gs.mil/gets-development/docker/tomcat9-test .

啟動命令:

docker run --name tomcatTest -it gitlab-registry.gs.mil/gets-development/docker/tomcat9-test:latest /bin/bash

嘗試在 docker 容器內連接到本地主機失敗

curl: (7) Failed to connect to localhost port 8080: Connection refused

沒有日志文件

[root@b058163e9605 local]# cd tomcat/logs/
[root@b058163e9605 logs]# ls -als
total 0
0 drwxr-x--- 2 root root   6 Jul 14 12:28 .
0 drwxr-xr-x 9 root root 220 Aug  5 16:17 ..
[root@b058163e9605 logs]# 

這告訴我 Tomcat 沒有啟動。 在容器內啟動Tomcat,tomcat可以啟動成功:

[root@b058163e9605 bin]# ./catalina.sh run
.....
08-Aug-2022 13:12:02.934 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
08-Aug-2022 13:12:03.038 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1590] milliseconds
08-Aug-2022 13:12:03.204 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
08-Aug-2022 13:12:03.205 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.65]
08-Aug-2022 13:12:03.224 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/ROOT]
08-Aug-2022 13:12:03.877 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/ROOT] has finished in [652] ms
08-Aug-2022 13:12:03.879 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/docs]
08-Aug-2022 13:12:03.945 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/docs] has finished in [66] ms
08-Aug-2022 13:12:03.947 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/examples]
08-Aug-2022 13:12:04.559 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/examples] has finished in [613] ms
08-Aug-2022 13:12:04.562 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/host-manager]
08-Aug-2022 13:12:04.626 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/host-manager] has finished in [63] ms
08-Aug-2022 13:12:04.626 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/manager]
08-Aug-2022 13:12:04.717 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/manager] has finished in [90] ms
08-Aug-2022 13:12:04.733 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
08-Aug-2022 13:12:04.767 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1728] milliseconds

最后,我檢查了 Docker 日志,顯示了我在容器內做了什么,但沒有其他信息。

請協助。

您的docker run命令不會啟動 Tomcat,而只是啟動 bash。 注意最后一個參數

docker run --name tomcatTest -it gitlab-registry.gs.mil/gets-development/docker/tomcat9-test:latest /bin/bash

把它改成

docker run --name tomcatTest gitlab-registry.gs.mil/gets-development/docker/tomcat9-test:latest

如果您想要 shell 調查正在運行的容器內發生的情況,請使用

docker exec -it tomcatTest /bin/bash

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM