IT박스

Dockerfile의 이름을 지정하는 방법

itboxs 2020. 9. 5. 09:28
반응형

Dockerfile의 이름을 지정하는 방법


Dockerfiles의 이름을 지정하는 방법을 잘 모르겠습니다. GitHub의 대부분 Dockerfile은 파일 확장자없이 사용 합니다. 나는 그들에게 이름과 확장자를 부여합니까; 만약 그렇다면? 아니면 그냥 전화를 Dockerfile하나요?


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

Dockerfile

그러나 아래와 같이 할 수도 있습니다 ...

dev.Dockerfile, uat.Dockerfile, prod.Dockerfile

VS Code에서 사용할 수 있으며 <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에서 autobuilder를 사용하려는 경우 이어야한다 Dockerfile . 그래서 거기 :)


사실 인 것 같지만 개인적으로는 디자인이 좋지 않은 것 같습니다. 물론 기본 이름 (확장자 포함)을 사용하지만 다른 이름을 허용하고 명령에 대한 도커 파일의 이름을 지정하는 방법이 있습니다.

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

Docker 파일에 확장자가 있으면 OS에 특정 응용 프로그램 (예 : 텍스트 편집기 응용 프로그램)으로 시작하도록 지시 할 수 있습니다. 잘 모르겠지만 현재 동작이 파일 권한과 관련이있을 수도 있습니다.


나는 그들에게 이름과 확장자를 부여합니까; 만약 그렇다면?

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

특정 요구 사항에 따라 파일 이름을 변경할 수 있습니다. 예를 들어 여러 아키텍처를 위해 빌드하는 경우 resin.io 팀이 HAProxy 컨테이너에 대해 다중 컨테이너 ARM 예제를 수행 했으므로 아키텍처를 나타내는 확장을 추가 할 수 있습니다 .

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

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


Dockerfile도커 파일 (디렉토리 당)이 하나만 있으면 좋습니다. 타당한 이유가 있다면 동일한 디렉토리에 여러 개의 도커 파일이 필요한 경우 원하는 표준을 사용할 수 있습니다. 최근 프로젝트에는 환경이 충분히 다르기 때문에 AWS Docker 파일과 로컬 개발 환경 파일이있었습니다.

Dockerfile Dockerfile.aws


동일한 디렉토리에 두 개의 Dockerfile을 만들었습니다.

# vi one.Dockerfile
# vi two.Dockerfile

두 Dockerfile을 모두 빌드하려면

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

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

참고 URL : https://stackoverflow.com/questions/26077543/how-to-name-dockerfiles

반응형