Openshift:无法启动docker映像

Openshift:无法启动docker映像,docker,tomcat,openshift,Docker,Tomcat,Openshift,我有一个docker映像,基本映像ubuntu和tomcat稍后安装在该映像上。在docker构建之后,我能够在本地运行docker映像,没有任何问题。但当它部署在OpenShift上时,它无法启动 Dockerfile FROM ubuntu:latest RUN apt-get -y update && apt-get -y upgrade RUN apt-get -y install openjdk-8-jdk wget RUN wget http://apache.stu

我有一个docker映像,基本映像ubuntu和tomcat稍后安装在该映像上。在docker构建之后,我能够在本地运行docker映像,没有任何问题。但当它部署在OpenShift上时,它无法启动

Dockerfile

FROM ubuntu:latest
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get -y install openjdk-8-jdk wget
RUN wget http://apache.stu.edu.tw/tomcat/tomcat-8/v8.5.58/bin/apache-tomcat-8.5.58.tar.gz -O /tmp/tomcat.tar.gz && \
    cd /tmp && tar xvfz tomcat.tar.gz && \
    cp -Rv /tmp/apache-tomcat-8.5.58/* /usr/local/tomcat/ 
EXPOSE 8080
CMD /usr/local/tomcat/bin/catalina.sh run
FROM ubuntu:latest
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get -y install openjdk-8-jdk wget
RUN wget http://apache.stu.edu.tw/tomcat/tomcat-8/v8.5.58/bin/apache-tomcat-8.5.58.tar.gz -O /tmp/tomcat.tar.gz && \
    cd /tmp && tar xvfz tomcat.tar.gz && \
    cp -Rv /tmp/apache-tomcat-8.5.58/* /usr/local/tomcat/ 

#Add a user ubuntu with UID 1001
RUN useradd -rm -d /home/ubuntu -s /bin/bash -g root -G sudo -u 1001 ubuntu && \
   chown -R ubuntu:root /usr/local/tomcat && \
   chgrp -R 0 /usr/local/tomcat && \
   chmod -R g=u /usr/local/tomcat

#Specify the user with UID
USER 1001

EXPOSE 8080    
CMD /usr/local/tomcat/bin/catalina.sh run

默认情况下,OpenShift容器平台使用任意分配的用户ID运行容器。对于支持以任意用户身份运行的映像,映像中的进程可能写入的目录和文件应由根组拥有,并可由该组读/写。要执行的文件还应具有组执行权限

这是修改后的Dockerfile

FROM ubuntu:latest
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get -y install openjdk-8-jdk wget
RUN wget http://apache.stu.edu.tw/tomcat/tomcat-8/v8.5.58/bin/apache-tomcat-8.5.58.tar.gz -O /tmp/tomcat.tar.gz && \
    cd /tmp && tar xvfz tomcat.tar.gz && \
    cp -Rv /tmp/apache-tomcat-8.5.58/* /usr/local/tomcat/ 
EXPOSE 8080
CMD /usr/local/tomcat/bin/catalina.sh run
FROM ubuntu:latest
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get -y install openjdk-8-jdk wget
RUN wget http://apache.stu.edu.tw/tomcat/tomcat-8/v8.5.58/bin/apache-tomcat-8.5.58.tar.gz -O /tmp/tomcat.tar.gz && \
    cd /tmp && tar xvfz tomcat.tar.gz && \
    cp -Rv /tmp/apache-tomcat-8.5.58/* /usr/local/tomcat/ 

#Add a user ubuntu with UID 1001
RUN useradd -rm -d /home/ubuntu -s /bin/bash -g root -G sudo -u 1001 ubuntu && \
   chown -R ubuntu:root /usr/local/tomcat && \
   chgrp -R 0 /usr/local/tomcat && \
   chmod -R g=u /usr/local/tomcat

#Specify the user with UID
USER 1001

EXPOSE 8080    
CMD /usr/local/tomcat/bin/catalina.sh run
请参阅Openshift中的“支持任意用户ID”部分

要放松群集中的安全性,以便在不授予所有人访问特权SCC的权限的情况下,图像不会被迫作为预先分配的UID运行,请执行以下操作:

授予所有经过身份验证的用户对anyuid SCC的访问权限:

$ oc adm policy add-scc-to-group anyuid system:authenticated

如果Dockerfile中未指定任何用户,则允许图像作为根UID运行。

默认情况下,OpenShift容器平台使用任意分配的用户ID运行容器。对于支持以任意用户身份运行的图像,映像中的进程可能写入的目录和文件应由根组拥有,并可由该组读/写。要执行的文件还应具有组执行权限

这是修改后的Dockerfile

FROM ubuntu:latest
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get -y install openjdk-8-jdk wget
RUN wget http://apache.stu.edu.tw/tomcat/tomcat-8/v8.5.58/bin/apache-tomcat-8.5.58.tar.gz -O /tmp/tomcat.tar.gz && \
    cd /tmp && tar xvfz tomcat.tar.gz && \
    cp -Rv /tmp/apache-tomcat-8.5.58/* /usr/local/tomcat/ 
EXPOSE 8080
CMD /usr/local/tomcat/bin/catalina.sh run
FROM ubuntu:latest
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get -y install openjdk-8-jdk wget
RUN wget http://apache.stu.edu.tw/tomcat/tomcat-8/v8.5.58/bin/apache-tomcat-8.5.58.tar.gz -O /tmp/tomcat.tar.gz && \
    cd /tmp && tar xvfz tomcat.tar.gz && \
    cp -Rv /tmp/apache-tomcat-8.5.58/* /usr/local/tomcat/ 

#Add a user ubuntu with UID 1001
RUN useradd -rm -d /home/ubuntu -s /bin/bash -g root -G sudo -u 1001 ubuntu && \
   chown -R ubuntu:root /usr/local/tomcat && \
   chgrp -R 0 /usr/local/tomcat && \
   chmod -R g=u /usr/local/tomcat

#Specify the user with UID
USER 1001

EXPOSE 8080    
CMD /usr/local/tomcat/bin/catalina.sh run
请参阅Openshift中的“支持任意用户ID”部分

要放松群集中的安全性,以便在不授予所有人访问特权SCC的权限的情况下,图像不会被迫作为预先分配的UID运行,请执行以下操作:

授予所有经过身份验证的用户对anyuid SCC的访问权限:

$ oc adm policy add-scc-to-group anyuid system:authenticated
如果Dockerfile中未指定用户,则允许图像作为根UID运行