USER 指定当前用户

格式:USER <用户名>[:<用户组>]

USER 指令和 WORKDIR 相似,都是改变环境状态并影响以后的层。WORKDIR 是改变工作目录,USER 则是改变之后层的执行 RUN, CMD 以及 ENTRYPOINT 这类命令的身份。

当然,和 WORKDIR 一样,USER 只是帮助你切换到指定用户而已,这个用户必须是事先建立好的,否则无法切换。

RUN groupadd -r redis && useradd -r -g redis redis
USER redis
RUN [ "redis-server" ]

如果以 root 执行的脚本,在执行期间希望改变身份,比如希望以某个已经建立好的用户来运行某个服务进程,不要使用 su 或者 sudo,这些都需要比较麻烦的配置,而且在 TTY 缺失的环境下经常出错。建议使用 gosu

# 建立 redis 用户,并使用 gosu 换另一个用户执行命令
RUN groupadd -r redis && useradd -r -g redis redis
# 下载 gosu
RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.7/gosu-amd64" \
&& chmod +x /usr/local/bin/gosu \
&& gosu nobody true
# 设置 CMD,并以另外的用户执行
CMD [ "exec", "gosu", "redis", "redis-server" ]

最新文章

  1. Vue.js&mdash;&mdash;60分钟webpack项目模板快速入门
  2. DG gap sequence修复一例
  3. 二十八、Java基础--------正则表达式
  4. JNI ReferenceTable overflow
  5. 【日常小记】统计后缀名为.cc、.c、.h的文件数【转】
  6. java并发包:线程池 executorservice
  7. template学习一函数模板
  8. json写入new_hello文件
  9. iOS蓝牙开发(一)蓝牙相关基础知识(转)
  10. 【Mood-18】github 使用指南
  11. Ionic条码扫描
  12. iOS 宏定义_16进制色值转化为RGB返回UIColor类型对象
  13. dede去除powered by dedecms
  14. 整合spring2 + struts1.2 + hibernate3.2 .
  15. JFreeChat
  16. DotNet基础
  17. linux下的5款桌面环境
  18. vmware提示:此虚拟机似乎正在使用中,取得该虚拟机的所有权失败错误
  19. OR1200中指令Cache的结构
  20. scrapy爬虫框架setting模块解析

热门文章

  1. codeforce D. White Lines
  2. Apache Kafka(四)- 使用 Java 访问 Kafka
  3. 线性回归-Fork
  4. TXT文件也能挂木马
  5. 普及C组第四题(8.2)
  6. 第十篇 深入Python的dict和set(一)
  7. 吴裕雄 python 机器学习——支持向量机SVM非线性分类SVC模型
  8. Go断点续传
  9. SQL基础语法—create语句
  10. Django报错 The serializer field might be named incorrectly and not match any Got AttributeError when attempting to get a value for field `author_for` on serializer `KnownledgeBaseListSerializer`