source

도커 파일 이름 지정 방법

manycodes 2023. 8. 19. 10:29
반응형

도커 파일 이름 지정 방법

도커 파일의 이름을 지정하는 방법을 잘 모르겠습니다.이 깃허브를 합니다.Dockerfile가 그들에게 내선번호를 요; 제가 그들에게 이름과 내선번호를 주나요? 그렇다면요?아니면 그냥 그들을 부를까요?Dockerfile?

[정답 전문을 읽어주세요]hub.docker.com 에서 오토빌더를 사용하려면 도커 파일의 이름을 변경하지 마십시오.도커 파일에 확장자를 사용하지 말고 null로 유지합니다.파일 이름은 다음과 같아야 합니다(확장자가 전혀 없음).

Dockerfile

하지만 이제 도커 파일의 이름을 다음과 같이 지정할 수 있습니다.

test1.Dockerfile
$ docker build -f dockerfiles/test1.Dockerfile  -t test1_app .

또는

Dockerfile.test1
$ docker build -f dockerfiles/Dockerfile.test1  -t test1_app .

이것도 효과가 있을 것입니다.

동일한 컨텍스트에 있는 여러 파일을 처리하는 경우 STDIN을 사용할 수 있습니다.

test1.Dockerfile
$ docker build -t test1_app - < test1.Dockerfile

dev.Dockerfile,test.Dockerfile,build.Dockerfile

내가 사용하는 VS 코드에서<purpose>.Dockerfile그리고 그것은 올바르게 인식됩니다.

저는 이것이 꽤 많은 답을 가진 오래된 질문이라는 것을 알지만, 공식 문서에 사용된 명명 규칙을 제안하는 사람이 없다는 것을 알고 놀랐습니다.

$ docker build -f dockerfiles/Dockerfile.debug -t myapp_debug .
$ docker build -f dockerfiles/Dockerfile.prod  -t myapp_prod .

빌드 (「 」 「 」 「 」 「 」 「 」로 지정).. 의이 있는 경우 두입니다.Dockerfile한 번은 프로덕션 버전을 사용합니다.

요약하자면, 다음과 같은 파일이 있는 경우Dockerfile빌드 컨텍스트의 루트에서 자동으로 선택됩니다. Dockerfile동일한 빌드 컨텍스트에 대해 제안되는 명명 규칙은 다음과 같습니다.

Dockerfile.<purpose>

이러한 도커 파일은 빌드 컨텍스트의 루트에 있거나 루트 디렉터리를 보다 깔끔하게 유지하기 위해 하위 디렉터리에 있을 수 있습니다.

컨테이너별로 Docker 파일(확장자 없음)이 있는 디렉토리가 있어야 한다고 생각합니다.예:

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

디렉터리 이름만 사용하여 빌드하면 도커가 도커 파일을 찾을 수 있습니다. 예:

docker build -f ./db .

같은 디렉터리에 두 개의 도커 파일을 만들었습니다.

# vi one.Dockerfile
# vi two.Dockerfile

두 Docker 파일을 모두 빌드하려면 다음과 같이 하십시오.

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

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

제가 그들에게 이름과 내선번호를 주나요? 그렇다면요?

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

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

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

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

hub.docker.com 에서 오토빌더를 사용하려면 다음과 같이 해야 합니다. Dockerfile그래서 거기:)

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

확장 기능을 사용하면 응용 프로그램을 해당 확장 유형에 연결할 수 있기 때문에 확장 기능도 유용합니다.MacOSX에서 Docker 파일을 클릭하면 이 파일이 유닉스 실행 파일로 처리되어 실행됩니다.

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

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

Dockerfile
Dockerfile.aws

두 가지 주요 도커 파일 명명 규칙이 있습니다.

기본 도커 파일 사용:

단순성을 유지하기 위해 이 접근 방식은 단순하고 독립적이며 잘 정의된 프로젝트에 적합합니다.

$ docker build -f ./Dockerfile.Dockerfile .

사용자 지정 도커 파일 사용:

이를 사용자 지정 방식으로 유지하는 이 접근 방식은 개발자가 애플리케이션 컨텍스트를 숙지하고, 파일 조작을 용이하게 하며, 특히 여러 도커 파일의 경우 디버깅 기능을 향상시킵니다.

$ docker build -t <containername> . -f <mycustomdockerfile>.Dockerfile

친절한 주의사항:

이러한 규칙은 '도커 이미지 빌드' 및 '도커 합성 빌드'와 같은 일반적인 도커 이미지 빌드 명령에도 동일하게 적용됩니다.

도커 파일(사용자 지정 이름 및 폴더):

   docker/app.Dockerfile
   docker/nginx.Dockerfile

빌드:

   docker build  -f ./docker/app.Dockerfile .
   docker build  -f ./docker/nginx.Dockerfile .

언급URL : https://stackoverflow.com/questions/26077543/how-to-name-dockerfiles

반응형