我是刚接触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
dockerfile이 있다고 해서 반드시 이미지 파일이 있다는 의미는 아닙니다. docker build -t ${tagName} 을 통해 이미지 파일을 빌드할 수 있습니다. 그런 다음 이미지 파일을 통해 CONTAINER를 생성하면 결국 컨테이너가 실행될 수 있습니다. 현재 예에서는 다음 명령을 사용하여 위 프로세스를 완료할 수 있습니다.
으아아아Dockerfile을 직접 작성하기 전에 먼저 Dockerfile 구축 프로세스를 연습하는 것이 가장 좋습니다.
자신의 논리에 따라 기본 이미지를 통해 컨테이너를 생성 및 입력하고, Dockerfile에 작성하고 싶은 명령어를 먼저 실행한 후, 문제가 있는지 확인하고, 문제를 해결한 후, 모든 명령어를 요약하고 Dockerfile에 작성합니다.
Dockerfile을 종이에 직접 작성하는 대신.
여기서 발생한 오류는 명백합니다. Tomcat 시작 스크립트
/usr/local/tomcat/bin/startup.sh
가 존재하지 않아 컨테이너를 시작할 수 없습니다. 먼저 컨테이너에서 Tomcat을 빌드하는 연습을 해보고, Tomcat을 어떻게 시작해야 하는지, 시작 시 어떤 문제가 없는지 확인하고, 모든 문제를 해결하고, 빌드한 Tomcat이 실행될 수 있는지 확인한 후 이러한 내용을 Dockerfile에 작성해 보세요. 빈 공간에 Dockerfile을 작성하는 것은 매우 강력하고 연습을 절약해 주는 것처럼 보이지만 실제로는 시간 낭비일 뿐입니다.