Назад | Перейти на главную страницу

Как исправить ошибку отказа в разрешении OpenShift?

Я пытаюсь запустить докер-контейнер OrientDB в OpenShift. Я обнаруживаю ошибку разрешений при попытке развернуть. Я использую Mac.

Это ошибка:

/orientdb/bin/server.sh: line 114: can't create /orientdb/bin/orient.pid: Permission denied

Это Dockerfile из официального репозитория OrientDB-Docker GitHub.

FROM openjdk:8-jdk-alpine

MAINTAINER OrientDB LTD (info@orientdb.com)

# Override the orientdb download location with e.g.:
#   docker build -t mine --build-arg ORIENTDB_DOWNLOAD_SERVER=http://repo1.maven.org/maven2/com/orientechnologies/ .
ARG ORIENTDB_DOWNLOAD_SERVER

ENV ORIENTDB_VERSION 3.0.2
ENV ORIENTDB_DOWNLOAD_MD5 145e4836a3066783f0d2545af17b9e56
ENV ORIENTDB_DOWNLOAD_SHA1 9aae978d9943af6e82fb4707519239e60054f652

ENV ORIENTDB_DOWNLOAD_URL ${ORIENTDB_DOWNLOAD_SERVER:-http://central.maven.org/maven2/com/orientechnologies}/orientdb-community/$ORIENTDB_VERSION/orientdb-community-$ORIENTDB_VERSION.tar.gz

#RUN adduser orientdb root

RUN apk add --update tar curl \
    && rm -rf /var/cache/apk/*

#download distribution tar, untar and delete databases
RUN mkdir /orientdb && \
  wget  $ORIENTDB_DOWNLOAD_URL \
  && echo "$ORIENTDB_DOWNLOAD_MD5 *orientdb-community-$ORIENTDB_VERSION.tar.gz" | md5sum -c - \
  && echo "$ORIENTDB_DOWNLOAD_SHA1 *orientdb-community-$ORIENTDB_VERSION.tar.gz" | sha1sum -c - \
  && tar -xvzf orientdb-community-$ORIENTDB_VERSION.tar.gz -C /orientdb --strip-components=1 \
  && rm orientdb-community-$ORIENTDB_VERSION.tar.gz \
  && rm -rf /orientdb/databases/*

ENV PATH /orientdb/bin:$PATH

VOLUME ["/orientdb/backup", "/orientdb/databases", "/orientdb/config"]

WORKDIR /orientdb

# new new
#RUN chmod -R g+rwx /orientdb

#OrientDb binary
EXPOSE 2424

#OrientDb http
EXPOSE 2480

USER 1000

# Default command start the server
CMD ["server.sh"]

Этот образ создается от имени пользователя root и должен запускаться от имени пользователя root. По умолчанию OpenShift не позволяет ему запускаться от имени пользователя root, но вы можете включить его, добавив разрешение к учетной записи службы, которая запускает контейнер:

oc adm policy add-scc-to-user anyuid -z по умолчанию

Имейте в виду, что это угроза безопасности, и рекомендуется избегать контейнеров, которые должны запускаться от имени пользователя root.

https://blog.openshift.com/understanding-service-accounts-sccs/ https://blog.openshift.com/getting-any-docker-image-running-in-your-own-openshift-cluster/