docker - ibmcom/mq docker 镜像向后兼容性问题
问题描述
我正在使用 docker image ibmcom/mq 。我的撰写文件是:
FROM ibmcom/mq
USER root
# create another client user
# default is app without password
RUN useradd user1 -G mqclient && \
echo user1:passwd | chpasswd
然后当我再次构建最新图像时它突然停止工作。
错误是:
useradd: group 'mqclient' does not exist
ERROR: Service 'mq' failed to build: The command '/bin/sh -c useradd user1 -G mqclient && echo user1:passwd | chpasswd' returned a non-zero code: 6
现在 compose 不适用于最新的图像(9.1.5.0-r1)版本,但适用于旧版本,例如 9.1.4.0-r1
谁能建议什么是替代方案
解决方案
从 9.1.5 开始,容器不再使用基于操作系统的用户或组。这是为了符合云最佳实践。相反,正在使用基于文件的系统。这样当您将云中的容器部署到生产环境时,您可以切换到基于 LDAP 的系统。
9.1.5容器使用htpasswd,相关文件在/etc/mqm/
对于开发,如果您不打算创建新用户,那么您可以使用 9.1.5 容器。如果要创建新用户,可以使用 9.1.4 或更早版本,或者使用 htpasswd 和 bcrypt 来创建用户。
推荐阅读
- c - 这个嵌套函数问题可以在 C 中解决吗?
- javascript - 使用jsPDF在下载的pdf文件中缩放问题
- azure - 如何在 Azure SQL 数据库中执行存档和清除
- mongodb - 根据 $match creteria 从单个 MongoDB 聚合中获取多个 $sum
- if-statement - 查找登录的总小时数
- javascript - 如何查看此“jQuery 绑定/取消绑定自定义函数”功能的源代码?
- ionic4 - 如何掩盖弹出窗口左侧的迷你滚动条?
- javascript - 当模板中的数组值为空或长度 === 0 时,如何显示输入框?
- javascript - 对象构造函数中的“对象”到底是什么意思?
- c# - C# Windows 服务文件移动到不同的目录