Gitの改行コード自動置換機能(autocrlf)を無効化する
git config --global core.autocrlf falsegit add --renormalize .
すでにautocrlfが適用されたファイルを元に戻すために、既存のローカルリポジトリではadd --renormalize
が必要です。
GitのCRLF自動置換機能のためにDocker Buildに失敗する例
改行コードCRLFで以下のようなDockerfileを作成すると、
# syntax=docker/dockerfile:1.4FROM ubuntu:22.04RUN <<EOFset -euxecho "OK"EOF
以下のようなエラーとなり、ビルドに失敗します。
------> [2/2] RUN <<EOF (set -eux...):#8 0.294 /bin/sh: 1: set: Illegal option -------executor failed running [/bin/sh -c set -euxecho "OK"]: exit code: 2
GitのCRLF自動置換機能によって、Dockerfileの改行コードがCRLFに書き換えられることでも同じことが起きます。
Linuxの仮想化ソフトウェアであるDockerの構成ファイルにCRLFが使われることが想定されないのは理解できます。
WindowsでDockerを扱っていることは理解してくだ さい。
.gitattributes
でリポジトリごとに改行コードのポリシーを変更することができますが、令和の時代に改行コードの切り替えができないテキストエディタを使うこともないと思われるので、 不要なCRLF自動置換機能を無効化する方が、たくさんのリポジトリを扱う人には向いているでしょう。