如何修复Docker错误:Dockerfile解析错误,未知指令[global]
问题原因
Docker解析器把你RUN命令换行后的[global]当成了一条新的Dockerfile指令,但[global]并不是合法的Docker指令,所以报错。这是因为Dockerfile中跨多行的RUN命令需要用反斜杠\标记续行,否则每一行都会被当作独立指令处理。
修复方法
给RUN命令里的每一行末尾加上反斜杠,让Docker识别这是同一个RUN命令的延续:
FROM ubuntu:latest RUN /bin/bash -c 'cat <<EOF > /etc/pip.conf.d/pip.conf \ [global] \ index-url = https://repo.org/pypi/org.python.pypi/simple \ trusted-host = repo.org \ EOF'
或者你也可以简化写法,去掉/bin/bash -c,直接用shell模式的RUN,同样加反斜杠续行:
FROM ubuntu:latest RUN cat <<EOF > /etc/pip.conf.d/pip.conf \ [global] \ index-url = https://repo.org/pypi/org.python.pypi/simple \ trusted-host = repo.org \ EOF
如果不在意可读性,也可以把所有内容压缩到一行,用\n代替换行:
FROM ubuntu:latest RUN /bin/bash -c 'cat <<EOF > /etc/pip.conf.d/pip.conf\n[global]\nindex-url = https://repo.org/pypi/org.python.pypi/simple\ntrusted-host = repo.org\nEOF'
内容的提问来源于stack exchange,提问作者mon
相关产品推荐
相关产品推荐

