[docker] Dockerfiles의 이름을 지정하는 방법

Dockerfiles의 이름을 지정하는 방법을 잘 모르겠습니다. GitHub의 많은 Dockerfile파일 확장자없이 사용 합니다. 나는 그들에게 이름과 확장명을 줍니까? 그렇다면 무엇? 아니면 그냥 전화 해 Dockerfile?



답변

hub.docker.com에서 오토 빌더를 사용하려면 dockerfile 이름을 변경하지 마십시오. docker 파일에 확장자를 사용하지 말고 null로 두십시오. 파일 이름은 다음과 같아야합니다 (확장자 없음).

Dockerfile

그러나 아래처럼 할 수도 있습니다 …

dev.Dockerfile, uat.Dockerfile, prod.Dockerfile

VS 코드에서는 사용할 수 있으며 <purpose>.Dockerfile그에 따라 작동합니다.


답변

dev.Dockerfile, test.Dockerfile, build.Dockerfile

VS 코드에서 사용 <purpose>.Dockerfile하고 올바르게 인식됩니다.


답변

컨테이너마다 Dockerfile (확장자 없음)이있는 디렉토리가 있어야한다고 생각합니다. 예를 들면 다음과 같습니다.

  /db/Dockerfile
  /web/Dockerfile
  /api/Dockerfile

빌드 할 때 디렉토리 이름 만 사용하면 Docker가 Dockerfile을 찾습니다. 예 :

docker build -f ./db .


답변

hub.docker.com에서 오토 빌더를 사용하려면 이어야 Dockerfile 합니다. 그래서 🙂


답변

이것은 사실 인 것처럼 보이지만 개인적으로는 나쁘게 디자인 된 것 같습니다. 물론, 기본 이름 (확장자 포함)을 갖지만 다른 이름을 허용하고 명령에 도커 파일 이름을 지정하는 방법이 있습니다.

확장 기능을 갖는 것도 응용 프로그램을 해당 확장 유형에 연결할 수 있기 때문에 좋습니다. MacOSX에서 Dockerfile을 클릭하면 Unix 실행 파일로 취급하여 실행하려고 시도합니다.

Docker 파일의 확장자가 있으면 OS에 특정 응용 프로그램, 예를 들어 텍스트 편집기 응용 프로그램으로 시작하도록 지시 할 수 있습니다. 확실하지 않지만 현재 동작은 파일 허용과 관련이있을 수 있습니다.


답변

같은 디렉토리에 두 개의 Dockerfile을 만들었습니다.

# vi one.Dockerfile
# vi two.Dockerfile

두 Dockerfile 사용을 빌드하려면

# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile

참고 : 현재 작업 디렉토리에 있어야합니다.


답변

나는 그들에게 이름과 확장명을 줍니까? 그렇다면 무엇?

Dockerfile의 이름을 원하는대로 지정할 수 있습니다. 기본 파일 이름은 Dockerfile(확장자 없음)이며, 기본값을 사용하면 컨테이너 작업시 다양한 작업을보다 쉽게 ​​수행 할 수 있습니다.

특정 요구 사항에 따라 파일 이름을 변경할 수 있습니다. 예를 들어, 여러 아키텍처를 구축하려는 경우 resin.io 팀이 HA 컨테이너 컨테이너에 대해 멀티 컨테이너 ARM 예제를 수행 한 것처럼 아키텍처를 나타내는 확장을 추가 할 수 있습니다 .

Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi

제공된 예제에서 각 Dockerfile은 서로 다른 아키텍처 별 업스트림 이미지로 빌드합니다. 빌드에 사용할 특정 Dockerfile 은 명령 행을 사용하여 컨테이너를 빌드 할 때 --file, -f옵션을 사용하여 지정할 수 있습니다 .