В настоящее время я сталкиваюсь с проблемой, пытаясь настроить nginx: alpine в Openshift.
Моя сборка работает нормально, но я не могу выполнить развертывание с отклоненным разрешением со следующей ошибкой
2019/01/25 06:30:54 [emerg] 1 # 1: mkdir () «/ var / cache / nginx / client_temp» не удалось (13: разрешение отклонено)
nginx:[emerg] mkdir () "/ var / cache / nginx / client_temp" не удалось (13: разрешение отклонено)
Теперь я знаю, что Openshift немного сложнее, когда речь идет о разрешениях во время работы контейнерабез привилегий root и UID генерируется во время выполнения, что означает, что он недоступен в / etc / passwd.Но пользователь является частью группы root.Теперь, как это должно быть обработано, описывается здесь
https://docs.openshift.com/container-platform/3.3/creating_images/guidelines.html#openshift-container-platform-specific-guidelines
Я даже пошел дальше и сделал весь / var полностью доступным (777) для целей тестирования, но я все еще получаюошибка.Вот как выглядит мой Dockerfile
Dockerfile
FROM nginx:alpine
#Configure proxy settings
ENV HTTP_PROXY=http://my.proxy:port
ENV HTTPS_PROXY=http://my.proxy:port
ENV HTTP_PROXY_AUTH=basic:*:username:password
WORKDIR /app
COPY . .
# Install node.js
RUN apk update && \
apk add nodejs npm python make curl g++
# Build Application
RUN npm install
RUN ./node_modules/@angular/cli/bin/ng build
COPY ./dist/my-app /usr/share/nginx/html
# Configure NGINX
COPY ./openshift/nginx/nginx.conf /etc/nginx/nginx.conf
COPY ./openshift/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf
RUN chgrp -R root /var/cache/nginx /var/run /var/log/nginx && \
chmod -R 777 /var
RUN sed -i.bak 's/^user/#user/' /etc/nginx/nginx.conf
EXPOSE 8080
Забавно, что такой подход, похоже, влияет на альпийскую версию nginx.nginx: последняя (основанная на Debian, я думаю) не имеет проблем, и способ ее установки описан здесь
https://torstenwalter.de/openshift/nginx/2017/08/04/nginx-on-openshift.html
работает.(но у меня есть некоторые другие проблемы с этой сборкой, поэтому я перешел на alpine)
Есть идеи, почему это все еще не работает?