我正在使用以下的
由于 Openshift 3 平台的强制管理设置,我需要在
错误输出
Dockerfile
和 entrypoint.sh
。我需要以非 root 用户身份在容器中启动 crond
服务,但是我遇到了 Permission denied
错误。如何以非 root 用户身份启动 crond
服务?由于 Openshift 3 平台的强制管理设置,我需要在
Dockerfile
中设置 USER
。
Dockerfile
FROM centos:centos7.4.1708
RUN yum update -y && yum install -y cronie && rm -rf /var/lib/apt/lists/*
RUN cd / && mkdir /code
ADD entrypoint.sh /code/
RUN chmod -R 755 /code/entrypoint.sh
ENTRYPOINT ["/code/entrypoint.sh"]
RUN useradd -l -u 1001510000 -c "1001510000" 1001510000
USER 1001510000
CMD ["top"]
entrypoint.sh
#!/bin/bash
echo "in the entrypoint!"
echo "executing id"
id
echo "executing crond start"
crond start
echo "executing $@"
$@
错误输出
in the entrypoint!
executing id
uid=1001510000(1001510000) gid=1000(1001510000) groups=1000(1001510000)
executing crond start
crond: can't open or create /var/run/crond.pid: Permission denied
executing top
/run
执行相同操作。但请记住,要在/run
上执行此操作,因为在我的情况下/var/run
仅链接到此文件夹。 - Raoslaw Szamszur/var/run
在我的情况下也是链接的。但是对/run
进行chgrp
也没有起作用。 - MajorXboxcrond
需要其他权限。我也尝试过使用守护进程和在重启命令中启动进程,但是出现了相同的错误。无论如何,我已经放弃使用crond
了。感谢你的关注。 - MajorXbox