Debian 更換 repo 設定簡記 (VM / Dockerfile)



前言

  • 今天 build image 剛好發現 apt-get update 速度極慢,下載只有 4 kB/s ~ 10 kB/s,切換了國內 repo 就沒問題了,剛好記錄一下修改動作。



說明

更換 debian repo source (Workflow)

今天發現是從 http://deb.debian.org/debian 下載速度非常緩慢,打算覆蓋掉 repo 的 URL。

因為是 image,所以可以不用備份;如果是 VM,就先備份:

(vm 先備份)

1
2
3
cd /etc/apt/sources.list.d/
cp debian.sources debian.sources.bkp
cd -

(image 可以直接覆蓋)

1
2
3
4
5
6
7
cat <<EOF >/etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://ftp.tku.edu.tw/debian
Suites: bookworm bookworm-updates
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF

Note

  1. mirror list 取自 REF [1]
  2. 選用淡江的是因為在 list 中只有這個是 HTTP,不是 HTTPS;有些 image 太輕量會認不得 CA;HTTP 比較簡便。

後來又把這段新增了 timeout 加進目前的 Github workflow,短期內就可以先不用管這件事:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# ...

- name: setup
  run: |
    if ! timeout 100 apt-get update ; then
      cat <<EOF >/etc/apt/sources.list.d/debian.sources
    Types: deb
    URIs: http://ftp.tku.edu.tw/debian
    Suites: bookworm bookworm-updates
    Components: main
    Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
    EOF
      apt-get update
    fi


調整 Dockerfile

如果你也剛好撞到這件事,

想直接調整 Dockerfile multi-stage 的 builder 中 repo 設定,

可以用 COPY 直接蓋掉:

1
2
3
4
5
6
7
COPY <<EOF /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://ftp.tku.edu.tw/debian
Suites: bookworm bookworm-updates
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF

Note

  1. Dockerfile 配合 heredoc 參考 [2]



REF

  1. https://www.debian.org/mirror/list
  2. https://stackoverflow.com/questions/77191591/dockerfile-run-command-cannot-use-heredoc-with-build-args

主題 StackJimmy 設計