Docker:OpenShift Origin 3.6上的权限错误

时间:2018-06-09 00:57:57

标签: docker openshift

我正在尝试在OpenShift Origin 3.6中运行一个非常简单的Flask API。我可以在本地和远程构建这个容器,但是当我在OpenShift上部署时,我会在RUN chmod -R 777 ...行上获得权限错误。有没有人找到解决这个问题的方法?我想知道我的企业环境是否不允许这种类型的复制,但它都在容器内......

编辑:提供一个完全最小的例子

目录结构:

project
├── Dockerfile
└── app
    └── api.py

Dockerfile构建基本图片:

FROM docker.io/ubuntu:16.04

RUN apt-get update && apt-get install -y --no-install-recommends \
    cmake curl git make gunicorn nginx python3 python3-pip python3-setuptools build-essential \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

RUN pip3 install --upgrade pip
RUN pip3 install pandas numpy scikit-learn scipy xgboost flask-restful nltk gunicorn

RUN mkdir -p /home/app

WORKDIR /
RUN python3 -c 'import nltk; nltk.download("punkt")'
RUN mv /root/nltk_data /home/app

然后我运行docker build . -t project:latest --no-cache。接下来,Dockerfile使用上面的基本图像来部署实际应用程序(我基本上只是从上面注释掉“基本图像”行,并使用相同的Dockerfile文件从下面取消注释这些行):

FROM project:latest

COPY app /home/app

RUN chmod -R 777 /home/app

WORKDIR /home/app

EXPOSE 5000

CMD ["python3", "api.py"]

我使用docker build . -t project:app --no-cache构建要部署的容器。

api.py

import time

if __name__ == '__main__':
    while True:
        print('This app is running')
        time.sleep(30)

0 个答案:

没有答案