Онлайн-зоопарк Openshift из модуля dockerfile Отключение циклического сбоя

Я хочу развернуть приложение на Openshift-origin онлайн (следующее поколение). Через сервисы будет общаться как минимум 4 модуля.

В 1-м POD я должен запустить Zookeeper. Итак, я создал POD, в котором будет работать мой Zookeeper из образа докера, но статус POD: Crash loop back off.

Я создал новый проект

oc new-project my-project

Я создал новое приложение для развертывания своего зоопарка из докера.

oc new-app mciz/zookeeper-docker-infispector --name zookeeper

И выходное сообщение было:

--> Found Docker image 51220f2 (11 minutes old) from Docker Hub for "mciz/zookeeper-docker-infispector"

* An image stream will be created as "zookeeper:latest" that will track this image
* This image will be deployed in deployment config "zookeeper"
* Ports 2181/tcp, 2888/tcp, 3888/tcp will be load balanced by service "zookeeper"
  * Other containers can access this service through the hostname "zookeeper"
* This image declares volumes and will default to use non-persistent, host-local storage.
  You can add persistent volumes later by running 'volume dc/zookeeper --add ...'
* WARNING: Image "mciz/zookeeper-docker-infispector" runs as the 'root' user which may not be permitted by your cluster administrator

--> Creating resources with label app=zookeeper ...
imagestream "zookeeper" created
deploymentconfig "zookeeper" created
service "zookeeper" created
--> Success
Run 'oc status' to view your app.

Затем я запустил список стручков:

oc get pods

с выходом:

NAME               READY   STATUS             RESTART      AGE
zookeeper-1-mrgn1  0/1     CrashLoopBackOff   5            5m

Затем я запустил журналы:

 oc logs -p zookeeper-1-mrgn1 

с выходом:

JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
grep: /opt/zookeeper/bin/../conf/zoo.cfg: No such file or directory
mkdir: can't create directory '': No such file or directory
log4j:WARN No appenders could be found for logger         (org.apache.zookeeper.server.quorum.QuorumPeerConfig).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig     for more info.
Invalid config, exiting abnormally

Мой докерфайл:

FROM openjdk:8-jre-alpine
MAINTAINER mciz

ARG MIRROR=http://apache.mirrors.pair.com
ARG VERSION=3.4.6

LABEL name="zookeeper" version=$VERSION

RUN apk add --no-cache wget bash \
    && mkdir /opt \
    && wget -q -O - $MIRROR/zookeeper/zookeeper-$VERSION/zookeeper-    $VERSION.tar.gz | tar -xzf - -C /opt \
    && mv /opt/zookeeper-$VERSION /opt/zookeeper \
    && cp /opt/zookeeper/conf/zoo_sample.cfg     /opt/zookeeper/conf/zoo.cfg 

EXPOSE 2181 2888 3888

WORKDIR /opt/zookeeper

VOLUME ["/opt/zookeeper/conf"]

ENTRYPOINT ["/opt/zookeeper/bin/zkServer.sh"]
CMD ["start-foreground"]

person Azur Pazur    schedule 14.12.2016    source источник


Ответы (1)


В выводе команды new-app есть предупреждение:

WARNING: Image "mciz/zookeeper-docker-infispector" runs as the 'root' user which may not be permitted by your cluster administrator

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

Существует конкретный пример изображения и шаблона Zookeeper, который работает в Openshift.

https://github.com/openshift/origin/tree/master/examples/zookeeper

Обратите внимание на изменения Dockerfile для запуска контейнера от имени пользователя без полномочий root.

person Álvaro Pérez Soria    schedule 14.12.2016