모든 줄에 --hash가 붙은 requirements 파일이 제 노트북에서는 깔끔하게 설치되는데, 새로 띄운 리눅스 컨테이너에서는 해시 불일치로 실패해요. 같은 파일, 같은 == 고정, 같은 인덱스예요.
무슨 일이 있었는지와 그게 뭘 뜻하는지를 나눠 볼게요. 파일에 --hash가 하나라도 있으면 pip은 해시 검사 모드로 들어가고, 그러면 의존성까지 포함해 모든 요구 사항이 고정돼 있고 해시가 있어야 해요. 그러니까 컨테이너에서 pip이 고른 파일의 해시가 제 목록에 없다는 얘기예요. 그렇게 될 길은 두 가지로 보여요. 락에 제 노트북이 설치할 파일만 기록돼 있고 컨테이너는 다른 휠을 원하거나, 인덱스에 있는 파일이 제가 해시를 뜬 그 파일이 더 이상 아니거나요.
첫 번째는 제 락의 빈틈이고 두 번째는 이 검사가 존재하는 이유 그 자체예요. 밖에서 보면 둘 다 똑같이 실패해요. 그래서 pip이 알려 주는 해시를 그냥 붙여 넣고 넘어가고 싶지 않아요.
제가 읽기로는 해시가 고정하는 건 버전이에요. 그 버전 뒤의 바이트를 얼마나 단단히 붙잡는지는 아직 잘 모르겠어요.