在oreder中创建了一个Docker文件,以作为bashe os从Unix安装Tomcat服务器
我的Dockerfile:
FROM ubuntu
RUN apt-get update && apt-get upgrade -y #to update os
RUN apt-get dist-upgrade
RUN apt-get install build-essential
RUN apt-get install openjdk-8-jdk # to install java 8
RUN apt-get wget -y #to install wget package
RUN apt-get wget https://mirrors.estointernet.in/apache/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz #to download tomcat
RUN tar -xvzf apache-tomcat-9.0.37 # unzipping the tomcat
RUN mkdir tomcat # craeting tomacat directory
RUN cp apache-tomcat-9.0.37/* tomcat # copying tomact files to tomact directory
从Docker文件创建Docker映像的命令:
docker build -t [img name] -f [file name] .
在执行时,在安装Java软件包时变得像这样: '''此操作后,将使用242 MB的额外磁盘空间。 你要继续吗? [Y / n]是'''
答案 0 :(得分:0)
之所以会收到提示,是因为该命令正在等待用户输入是否安装软件包。您在其中使用的-y
标志(例如wget
)使bash
可以接受。将此标志添加到所有安装命令中。
顺便说一下,您发布的Dockerfile存在很多潜在的问题。
例如,您有RUN apt-get wget ...
您确定这就是您想做的,而不仅仅是RUN wget ...
吗?除非wget
是apt-get
接受的命令which it isn't,否则它将导致意外的行为。
您似乎还缺少启动Tomcat服务器的命令,该命令可以启动该服务器,以便在尝试运行该映像时没有任何反应。
答案 1 :(得分:0)
我认为您应该在运行DEBIAN_FRONTEND=noninteractive
命令时添加apt-get
,如下所示:
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install build-essential -y
此外,使用多个RUN
步骤(可以合并为一个步骤)也是一种不好的做法。 here可以找到更多有关Dockerfile最佳实践的信息。