如何在 Docker 容器中以非 root 用户身份启动 crond?

Maj*_*box 12 cron centos docker

我正在使用以下Dockerfileentrypoint.sh. 我需要以crond非 root 用户身份在容器中启动服务,但我得到Permission denied. 如何crond以非 root 用户身份启动服务?

我需要输入USERDockerfile因为它是我的 Openshift 3 平台中的强制性管理设置。

文件

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"]
Run Code Online (Sandbox Code Playgroud)

入口点.sh

#!/bin/bash
echo "in the entrypoint!"
echo "executing id"
id
echo "executing crond start"
crond start
echo "executing $@"
$@
Run Code Online (Sandbox Code Playgroud)

错误输出

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 Code Online (Sandbox Code Playgroud)

Dae*_*ark -2

如何根据OpenShift 容器平台特定指南 再次构建?比如相关的uid和gid。