Dockerfiles의 이름을 지정하는 방법을 잘 모르겠습니다. GitHub의 많은 Dockerfile
파일 확장자없이 사용 합니다. 나는 그들에게 이름과 확장명을 줍니까? 그렇다면 무엇? 아니면 그냥 전화 해 Dockerfile
?
Dockerfiles의 이름을 지정하는 방법을 잘 모르겠습니다. GitHub의 많은 Dockerfile
파일 확장자없이 사용 합니다. 나는 그들에게 이름과 확장명을 줍니까? 그렇다면 무엇? 아니면 그냥 전화 해 Dockerfile
?
답변:
hub.docker.com에서 오토 빌더를 사용하려면 dockerfile 이름을 변경하지 마십시오. docker 파일에 확장자를 사용하지 말고 null로 두십시오. 파일 이름은 다음과 같아야합니다 (확장자 없음).
Dockerfile
그러나 아래처럼 할 수도 있습니다 ...
dev.Dockerfile
, uat.Dockerfile
, prod.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
옵션을 사용하여 지정할 수 있습니다 .
Dockerfile
디렉토리 당 하나의 도커 파일 만있는 경우 좋습니다. 동일한 디렉토리에 여러 개의 docker 파일이 필요한 경우 원하는 표준을 사용할 수 있습니다. 최근 프로젝트에는 환경이 충분히 다르기 때문에 AWS 도커 파일과 로컬 개발 환경 파일이있었습니다.
Dockerfile
Dockerfile.aws
Dockerfile.armv7hf
옆에를 배치 하십시오 Dockerfile.i386
.