docker run命令使用--build-arg参数报错unknown flag的原因是什么?
错误原因
--build-arg是docker build命令专属的构建参数,仅在镜像构建阶段生效,用来向 Dockerfile 中的ARG指令传递变量,docker run是容器启动命令,本身不支持该参数,所以会触发未知标识的报错。- 你当前的使用场景是启动容器时传递当前用户名参数,属于运行时变量传递,不需要使用构建阶段的参数。
修复方案
将命令中的 --build-arg USERNAME=${USER}`` 行替换为 --env 环境变量参数即可,不需要其他调整。
修复后的完整命令参考:
docker run --name=my_dev_server --network=host --privileged \ -v /dev:/dev \ --env USERNAME=${USER} \ --user=`id -u ${USER}` \ --env="DISPLAY" \ --volume="/etc/group:/etc/group:ro" \ --volume="/etc/passwd:/etc/passwd:ro" \ --volume="/etc/shadow:/etc/shadow:ro" \ --volume="/etc/sudoers.d:/etc/sudoers.d:ro" \ --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \ -it jccz/android_dev:v1 /bin/bash
内容的提问来源于stack exchange,提问作者Jose Cabrera Zuniga
相关产品推荐
相关产品推荐

