【发布时间】: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