dockerfile - 为什么运行时会出现 chown:在 `/usr/local/hadoop/logs' 之后缺少操作数
问题描述
在此处输入图像描述Dockerfile 构建成功,但是,我使用了 ocker run -it --hostname hadoop1 --name hadoop hadoop_v1.0 并且尝试了 `chown --help' 以获取更多信息,我检查了 /usr 下的所有日志/local/hadoop/logs都报错了,容器也可以正常运行
这是一个用于构建 hadoop 的 dockerfile。dockerfile 中使用 chown 命令的地方如下:enter image description here
RUN chmod 600 ${ROOT_HOME}/.ssh/config && \
chown root:root ${ROOT_HOME}/.ssh/config && \
chown root:root /etc/bootstrap.sh && \
chmod 700 /etc/bootstrap.sh && \
chmod +x $HADOOP_HOME/etc/hadoop/*-env.sh && \
adduser hdpuser && \
echo 'hdpuser:hdppassword' | chpasswd && \
usermod -aG wheel hdpuser && \
echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers
解决方案
这是因为 USER env var 未在使用 sbin/hadoop-daemon.sh 脚本的 docker 中设置。但是对于 hadoop,您应该将 env var HADOOP_IDENT_STRING 设置为所需的用户,即在容器内执行进程的用户。
推荐阅读
- angular - 在 Angular / Jasmine 中扩展其他两个组件的测试组件
- flutter - Android SDK 管理器抛出异常 [Java 11 问题。请阅读说明]
- qt - QML 参考错误:
没有定义 - postgresql - 错误 500 注册 kafka 时无法创建 PG 连接将 PG 连接器与多个代理
- javascript - D3 用圆形旋转在饼图周围画线
- c# - MSAA——Dragon 无法与 TableLayoutPanel 交互
- javascript - 如何在 TypeScript 中使用导航器和位置 DOM 变量
- python - 附加到两个列表的Python问题
- android - 如果您无法访问代码,您可以使用 Espresso 吗?
- java - Lombok fluent 访问器和 thymeleaf th:field 错误