从docker文件创建docker映像时出现问题

时间:2020-07-27 16:35:39

标签: docker

在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]是'''

2 个答案:

答案 0 :(得分:0)

之所以会收到提示,是因为该命令正在等待用户输入是否安装软件包。您在其中使用的-y标志(例如wget)使bash可以接受。将此标志添加到所有安装命令中。

顺便说一下,您发布的Dockerfile存在很多潜在的问题。

例如,您有RUN apt-get wget ...

您确定这就是您想做的,而不仅仅是RUN wget ...吗?除非wgetapt-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最佳实践的信息。