首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openshift :无法启动docker镜像

Openshift :无法启动docker镜像
EN

Stack Overflow用户
提问于 2020-12-10 17:11:21
回答 1查看 210关注 0票数 0

我有一个带有基础镜像ubuntu和tomcat的docker镜像稍后安装在该镜像上。在docker构建之后,我能够在本地运行docker镜像而不会出现任何问题。但是当它部署在OpenShift上时,它无法启动。

Dockerfile

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-10 17:11:21

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

以下是修改后的Dockerfile

代码语言:javascript
复制
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中有关Guideline的“支持任意用户ID”一节

要放松群集中的安全性,使镜像不会被强制作为预分配的UID运行,而不向每个人授予对特权SCC的访问权限:

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

代码语言:javascript
复制
$ oc adm policy add-scc-to-group anyuid system:authenticated

如果Dockerfile中没有指定用户,这将允许镜像作为根UID运行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65231546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档