於 Ubuntu Linux 22.04 手動安裝 Redmine 5.1

於 Debian Linux 使用 APT 直接安裝 Redmine,遇到的問題太難解了,所以乾脆下載 Redmine 原始碼全部手動安裝~

找到的文章是在 Ubuntu 22.04 + Redmine 5.0.1 的安裝版本,不過實際安裝跟文章寫的還是差距有點大,補上自己的筆記紀錄~

  • 註:此篇安裝的環境使用 Docker 來安裝,方便裝壞隨時打掉重練.. XD

閱讀全文〈於 Ubuntu Linux 22.04 手動安裝 Redmine 5.1〉

Docker 遇到 driver failed 與 iptables No chain 等問題解法

Docker run 遇到下述錯誤訊息:

  • docker: Error response from daemon: driver failed programming external connectivity on endpoint xxx: (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 127.0.0.1 --dport 1234 -j DNAT --to-destination 172.17.0.2:1234 ! -i docker0: iptables: No chain/target/match by that name.

解法

  • $ sudo iptables -t filter -F
  • $ sudo iptables -t filter -X
  • $ sudo systemctl restart docker

再來 Docker 就可以正常執行囉~~

docker-compose 生成卻立刻結束 exited with code 0 的解法

開發環境想要一次開啟多台機器,可以互相串連使用,若有功能的開起來沒問題,但是若只想開純粹只有 tty 的,就會立刻被結束掉,要怎麼解決呢?

閱讀全文〈docker-compose 生成卻立刻結束 exited with code 0 的解法〉

Debian / Ubuntu Linux 安裝套件的下載暫存路徑

Debian / Ubuntu Linux 預設 APT 下載的暫存目錄 /var/cache/apt

但是若有被修改,可以使用 apt-config 來查詢:

  1. eval $(apt-config shell CACHE Dir::Cache)
  2. eval $(apt-config shell ARCHIVES Dir::Cache::archives)
  3. echo /${CACHE}/${ARCHIVES} # 可以看到完整路徑

閱讀全文〈Debian / Ubuntu Linux 安裝套件的下載暫存路徑〉

Docker 外部 Cron 遇到 the input device is not a TTY 解法

現在於 Linux 程式很多都包 Docker,而需要定期跑得程式,可以跑在 Docker 裡面(需要特別做),或者就是在外部 docker exec 執行

但是在 docker exec + crontab 的時候,就會遇到「the input device is not a TTY」 的錯誤,要怎麼解決呢?

閱讀全文〈Docker 外部 Cron 遇到 the input device is not a TTY 解法〉

ctop:Docker Container 的 top

Linux 有各種 top 來查看系統的各種 loading,例如:htop、iotop、atop、glances(這個沒用 top 的名字)

而現在 Docker 盛行的時代,自然也有為 Docker Container 的 top:ctop (監控容器運行狀況專用)

閱讀全文〈ctop:Docker Container 的 top〉

Docker Image 的 備份 與 還原

Docker 平常都是備份 Dockerfile 和 docker-compose.yml 即可,但是某些套件已經無法線上安裝,就是 Dockerfile build 會失敗的話,比較好的做法就是直接把 Image 先存下來~

想要將 Docker Image 備份、還原,要怎麼做呢?

另外,若已經在 Container 做很多事情,但是無從考證起,那只好把 Container commit 然後另外備份成 Image.tar,要怎麼做呢?

閱讀全文〈Docker Image 的 備份 與 還原〉