我们在sources.list中使用本地repo,对于20.04,需要添加apt.conf.d
Acquire::https::local_repo.local_host.com::Verify-Peer "false";
与Bash一起工作,就像使用一样
sudo tee -a /etc/apt/apt.conf.d/80ssl-exceptions > /dev/null <<'EOF'
Acquire::https::local_repo.local_host.com::Verify-Peer "false";
EOF
但我找不到Dockerfile的解决方案。我试过用不同的转义符/换行符等等,但总是不成功。例如,
sudo tee -a /etc/apt/apt.conf.d/80ssl-exceptions > /dev/null <<'EOF'
Acquire::https::local_repo.local_host.com::Verify-Peer "false";
EOF
结果-/bin/sh: 1: EOF: not found
注意,cat
或echo
不是一个选项,在脚本中添加这3行也是不可取的。
如果只有一行要追加,那么我不会使用heredoc。使用echo
:更简单
RUN echo 'Acquire::https::local_repo.local_host.com::Verify-Peer "false";' |
sudo tee -a /etc/apt/apt.conf.d/80ssl-exceptions > /dev/null
或cat
:
RUN cat <<< 'Acquire::https::local_repo.local_host.com::Verify-Peer "false";' |
sudo tee -a /etc/apt/apt.conf.d/80ssl-exceptions > /dev/null
或者将字符串直接发送到sudo tee
:
RUN sudo tee -a /etc/apt/apt.conf.d/80ssl-exceptions > /dev/null
<<< 'Acquire::https::local_repo.local_host.com::Verify-Peer "false";'
请注意,后两个选项可能还需要设置SHELL /bin/bash
,因为<<<
是普通sh
中不可用的bash-ism。