【问题标题】:permission denied in docker entrypointdocker入口点中的权限被拒绝
【发布时间】:2021-11-18 06:25:16
【问题描述】:

我正在尝试通过 docker-compose 文件运行入口点脚本。我在尝试编辑配置时遇到权限被拒绝错误。我也尝试过使用 root 用户,但没有运气。

Dockerfile

FROM centos:7 AS ingestbase
RUN mkdir -p ${USER_HOME}/certs ${USER_HOME}/logs
COPY config/*  ${USER_HOME}/
RUN useradd -m -d ${USER_HOME} user
RUN chown -R user ${USER_HOME}/ 
USER user
WORKDIR ${USER_HOME}
ENTRYPOINT ["/entrypoint.sh"]

Entrypoint.sh 如下:

set -x
TRY_LOOP="3"
who
pwd
ls -ltr
sed -i "s#{DB_PASS}#$DB_PASS#g" ${USER_HOME}/config.py

以下是运行 enrypoint.sh 时的日志

+ TRY_LOOP=3
+ who
/usr/local/userhome
+ pwd
+ ls -ltr
total 10
drwxr-xr-x 9 user root  4096 Sep 20 02:51 logs
drwxr-xr-x 1 user root     6 Sep 25 05:59 certs
-rw-r--r-- 1 user root 41558 Sep 25 05:59 config.py
sed: couldn't open temporary file /usr/local/userhome/sedjzy3se: Permission denied

【问题讨论】:

  • 变量$USER_HOME在哪里设置? (你可以在 Dockerfile 的顶部设置WORKDIR /usr/local/userhome,然后它就是当前目录.;你并不需要这个变量。)

标签: linux docker docker-compose permission-denied docker-entrypoint


【解决方案1】:

您很可能没有入口点的可执行权限。

你有没有尝试过:

RUN chmod +x /entrypoint.sh
ENTRYPOINT [ "/bin.sh", "/entrypoint.sh"]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 2023-03-22
    • 2016-12-17
    • 2020-08-31
    相关资源
    最近更新 更多