【发布时间】:2020-11-12 17:02:23
【问题描述】:
我正在尝试使用以下脚本运行容器:
Dockerfile
FROM alpine:latest
USER root
RUN apk update \
&& apk upgrade \
&& apk --no-cache add busybox-suid su-exec
RUN chmod u+s /sbin/su-exec
RUN groupadd -r -g 2001 myuser \
&& useradd -r -u 1001 -g myuser myuser
RUN mkdir /home/myuser \
&& chown myuser /home/myuser
COPY --chown=myuser:myuser entrypoint.sh /home/myuser/entrypoint.sh
COPY --chown=myuser:myuser cronjob /home/myuser/cronjob
USER myuser
RUN crontab /home/myuser/cronjob
WORKDIR /home/myuser
ENTRYPOINT["./entrypoint.sh"]
entrypoint.sh
#!/bin/sh
# Start cron daemon.
su-exec root crond -f -l 8
# Start application.
我读到提升权限不是好的做法。因此,我希望在我的脚本中消除使用 su-exec + chmod u+s /sbin/su-exec 。我也尝试了su 和sudo,但他们要求输入root 密码,所以我切换到su-exec。我需要提升权限,因为crond 不以root 启动就无法正常运行。该容器将在 Kubernetes 中运行。
有没有更好的方法来做到这一点?
【问题讨论】:
标签: docker cron sh devops alpine