CentOS 8上でのdocker build中にbundle install, npm installでこける

CentOS 8上でのdocker build中にbundle install, npm installでこける
TaKO8Ki
February 22, 2020

こんにちは、TaKO8Ki です。 最近CentOS 8上でimageをbuildする時にnpm install, bundle installでこける問題に直面したので、その時の記録を残しておきます。

やったこと

最終的には下記を実行するだけで解決。

$ firewall-cmd --zone=public --add-masquerade --permanent
# 忘れずにリロード
$ firewall-cmd --reload

CentOS 7系からOSのファイアウォールはiptablesからfirewalldに変更されていて、今回はそのfirewalldのmasqueradeの設定が抜け漏れていたせいで、docker-compose build時のnpm install, bundle installが失敗していたようです。

そもそもMasqueradeって何

NAT(Network Address Translation) という言葉はよく聞きますが、それを拡張したものが Masquerade(Internet Protocol Masquerade) のようです。
NATが、 「プライベートIPアドレスをグローバルIPアドレスに変換する技術」 であるのに対して、Masqueradeは、 「一つのグローバルIPアドレスを複数のコンピュータで利用するための技術」 という認識であってるのかな?

ということで今回はmasqueradeの設定についてでした。

OSをしっかり勉強する機運が高まってきたのかも。
この本いいらしいからインターン先で買ってもらおうかな。

参考

  1. No network connectivity to/from Docker CE container on CentOS 8
  2. IPマスカレードとは?