Я пытаюсь запустить докер-контейнер 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/