我目前正在运行Openshift,但在尝试构建/部署我的自定义Docker容器时遇到问题。该容器在我的本地机器上正常工作,但一旦在Openshift中构建并尝试部署它时,我会收到错误消息。我认为问题是因为我正在尝试以root身份在容器内运行命令。
(13)Permission denied: AH00058: Error retrieving pid file /run/httpd/httpd.pid
我要部署的Docker文件长这样 -
FROM centos:7
MAINTAINER me<me@me>
RUN yum update -y
RUN yum install -y git https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
RUN yum install -y ansible && yum clean all -y
RUN git clone https://github.com/dockerFileBootstrap.git
RUN ansible-playbook "-e edit_url=andrewgarfield edit_alias=emmastone site_url=testing.com" dockerAnsible/dockerFileBootstrap.yml
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
COPY supervisord.conf /usr/etc/supervisord.conf
RUN rm -rf supervisord.conf
VOLUME [ "/sys/fs/cgroup" ]
EXPOSE 80 443
#CMD ["/usr/bin/supervisord"]
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
我遇到过类似的问题多次,例如会显示“/supervisord.log
文件被拒绝访问”或者类似的消息。
我该如何设置容器不以root用户身份运行所有命令?这似乎是导致我遇到所有问题的原因。
oc adm add-scc-to-user anyuid -z default
放宽限制(为当前命名空间中的默认服务账户赋予使用“anyuid”SCC的能力)。 - Clayton