我是剛接觸docker的小白,今天試著用dockerfile 建立一個tomcat映像
結果在docker run 映像時 報錯
/bin/sh: /usr/local/tomcat/bin/startup.sh: No such file or directory
我的dockerfile 檔案內容如下: 請高手指點一下。謝謝
# tomcat
#
# VERSION 1.0
# 使用centos作为基准镜像
FROM centos
MAINTAINER lilin
# 使用root用户
USER root
ADD ./jdk-8u111-linux-x64.rpm /root
ADD ./tomcat /usr/local
#set environment variable
ENV JAVA_HOME /root/jdk-8u111-linux-x64
ENV PATH $JAVA_HOME/bin:$PATH
# 设置Tomcat7初始化运行,SSH终端服务器作为后台运行
ENTRYPOINT /usr/local/tomcat/bin/startup.sh && tail -F /usr/local/tomcat/logs/catalina.out
# 对外(其他容器)开放8080端口
EXPOSE 88
仅有的幸福2017-04-25 09:05:20
擁有dockerfile 不一定就有映像檔。 你可以透過 docker build -t ${tagName} . 來建立image檔。 然後再透過鏡像檔案創建CONTAINER, 最終能夠運作的是你的container。 你目前的例子你可以透過以下命令完成上述過程:
sudo docker build -t mytomcat .
sudo docker run -p 8080:8080 mytomcat //在这里你可以加上特定参数
曾经蜡笔没有小新2017-04-25 09:05:20
在自己寫Dockerfile之前,最好先實作一次Dockerfile的建置過程。
依照自己的邏輯,透過基礎映像建立並進入容器,把想要在Dockerfile中寫入的指令自己先執行一遍,看看是否有問題,並解決這些問題,之後總結所有指令寫成Dockerfile。
而不是直接紙上談兵寫出一個Dockerfile出來。
這裡錯誤以及很明顯了,Tomcat的啟動腳本/usr/local/tomcat/bin/startup.sh
不存在,所以容器不能啟動起來。請先自己在容器中實踐一次Tomcat的搭建,看看Tomcat應該怎樣啟動,啟動缺少哪些問題,把所有問題解決了,自己搭建的Tomcat能跑起來了,再把這些東西寫成Dockerfile。空寫Dockerfile看似很厲害很節約實踐,其實很純很浪費時間。