諸事情によって組織を作った時に、cloud run上にてgitのリポジトリにアクセスしたかったため、docker build後にgitが使える状態にしたかったが、割とプライベートな環境だしcredentialsをコンテナ上にコピーしようと思ったら思った以上にハマった
結論から言うと表題の通りで、.から始まるファイルはコピーされない。
ADD .git-credentials .git-credentials
こういうのは「追加できませんよ」とかエラーとか出してbuildを止めてくれたらいいんだけど、そこまで親切ではなかった。
本当は暗号化された認証情報とかを渡すとかもっとセキュアな方法がある(気がする)けど、一旦の暫定対応は以下のような形でもいけることはいけた
ADD git-credentials git-credentials
RUN mv git-credentials .git-credentials
ちなみにDockerfileと同じ場所に.dockerignoreのファイルをおけば.gitignore的な感じで使えます。
https://docs.docker.com/engine/reference/builder/#dockerignore-file
上記リンクの下の方に、以下のようなコメントがあり、確かに.つきのファイルをbuild時に含めて色々あったことは想像に難くはないけれど。。
歴史的な理由から、このパターン.は無視されます。
おねがい
デフォルトでbuild時にignoreするパターンを編集する方法を調べたけど見つからなかったのでどなたかご存知でしたら教えてください。