programing

도커 파일의 이름이 도커 파일이 아닌 경우 도커 파일을 작성하려면 어떻게 해야 합니까?

javajsp 2023. 8. 17. 20:46

도커 파일의 이름이 도커 파일이 아닌 경우 도커 파일을 작성하려면 어떻게 해야 합니까?

다음과 같은 도커 파일을 빌드할 수 있습니다.

docker build -t deepak/ruby .

그러나 이름이 지정되지 않은 도커 파일의 경우Dockerfile

# DOCKER-VERSION 0.4.8

FROM deepak/ruby

MAINTAINER Deepak Kannan "deepak@example.com"

RUN ./bin/rails s

라고 합니다.Dockerfile.app우리가 구축하는 것.

docker build -t deepak/app Dockerfile.app

그러면 나는 오류를 이해합니다.

Uploading context 0 bytes
Error build: EOF
EOF

점이 있습니다..두 명령어의 끝에 표시됩니다.

docker build -f MyDockerfile .

또는 태그가 있는 경우:

docker build -t mysuperimage -f MyDockerfile .

효과적인 제품

docker build -t doronaviguy/helloworld -f SomeDockerFile .

도커 빌드 설명서

도커 빌드의 마지막 매개 변수는 다음과 같은 경우 빌드 경로입니다..이것은 당신이 찾을 수 있는 경로라는 것을 의미합니다.Dockerfile로 변경할 때Dockerfile.app그러면 그것은 노력하고 찾을 것입니다.Dockerfile.app/Dockerfile그것은 정확하지 않습니다.

아직도 효과가 있을지는 모르겠지만 예전에는 이렇게 할 수 있었습니다.

$ docker build -t deepak/app - < Dockerfile.app

이 기능을 사용하여 도움이 되는지 확인하고 도움이 되지 않으면 도커 문제를 열어 이 기능을 다시 추가하거나 다른 이름으로 도커 파일을 사용하는 방법에 대한 설명서를 업데이트할 수 있습니다.

자세한 내용은 http://docs.docker.io/en/latest/commandline/command/build/ 에서 확인할 수 있습니다.

도커 피드를 사용해 보십시오.도커 기능을 사용하여 stdin을 통해 컨텍스트를 구축합니다.저는 제 자신이 직면한 당신의 문제를 정확히 해결하기 위해 대본을 썼습니다.

도커 파일을 다른 파일로 바꾸려면 다음과 같이 합니다.

dockerfeed -d Dockerfile.app . | docker build -t deepak/ruby -

그리고 voila.도커피드는 다음과 같은 작업을 수행합니다.docker build원본을 Docker 파일로 패킹하지만 이전 Docker 파일을 원하는 파일로 교체할 수 있습니다.프로세스에서 파일이 생성되지 않고 원본이 변경되지 않습니다.생성된 tar 아카이브는 도커에 파이프로 연결되고, 도커 데몬으로 전송됩니다.

업데이트: 이전에는 유효한 답변이 없었습니다.-f스위치를 사용할 수 있습니다.도커 버전 1.5에서 이 옵션이 도입되었습니다.이제 다음과 같은 다른 도커 파일을 빌드할 수 있습니다.

docker build -f other-Dockerfile .

이게 효과가 있을 겁니다

docker build -t <tag-name> -f <file-name> .

도커 합성을 사용하여 이 값을 얻을 수도 있습니다.

build 섹션 아래에 있는 docker-compose.yml에서 다음과 같이 docker 파일을 저장할 디렉터리와 대체 이름을 지정할 수 있습니다.

build:
  context: "/path/to/docker/directory"
  dockerfile: "dockerfile-alternate-name"

도커식의

Windows 사용자는 다음 명령을 시도해야 합니다.

도커 빌드 -f absolute_domplicer_file_path dot

예:

도커 빌드 -f D:\Code\core-api\API_TEST.도커 파일.

여러 개인 경우Dockerfiles, 대규모 프로젝트의 경우와 마찬가지로 각 완전한 자격을 지정할 수 있습니다.Dockerfile사용할 수 있습니다.

docker build -t swagger_local -f /Users/123456/myrepos/storage/services/gateway/swagger/Dockerfile .

음에서실때명령에서 할 때의 /Users/123456/myrepos/storage를 생성합니다.swagger_local를한이지를 Dockerfile하위 프로젝트에서(services/gateway의 경우

의 경우는 ./tmp디렉터리와 많은 파일이 있고 내가 통과했지만 다른 파일로 도커를 시도합니다.-f <Dockerfile.foo>

(은 ()입니다.dockerfeed위 답변에서):

cat DockerFile.debian.foo | docker build -t debian.foo -

도커 합성도커 기계를 포함한 도커 도구 상자를 성공적으로 설치했다고 가정합니다.이것은 나의 도커 컴포지.yml입니다.

version: '2'
services: 
  web: ./www/python
  ports:
   - "5000:5000"

그리고 이건 도커 파일 아래에 있습니다.

FROM python:3.4-alpine
ADD ./www/python /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

루트 폴더 아래에 파일이 정확히 있는지 확인합니다.도커 합성을 실행하면 웹용 이미지를 빌드하게 됩니다.

파일 옵션에 전체 경로를 입력하면 효과가 있습니다.

(meta_learning) brandomiranda~ ❯ docker build -f ~/iit-term-synthesis/Dockerfile_arm -t brandojazz/iit-term-synthesis:test_arm ~/iit-term-synthesis/

[+] Building 43.8s (9/28)
 => [internal] load build definition from Dockerfile_arm                                                                                           0.0s
 => => transferring dockerfile: 2.59kB                                                                                                             0.0s
 => [internal] load .dockerignore                                                                                                                  0.0s
 => => transferring context: 2B                                                                                                                    0.0s
 => [internal] load metadata for docker.io/continuumio/miniconda3:latest                                                                           0.0s
 => [ 1/24] FROM docker.io/continuumio/miniconda3                                                                                                  0.0s
 => CACHED https://api.github.com/repos/IBM/pycoq/git/refs/heads/main                                                                              0.0s
 => [ 2/24] RUN apt-get update   && apt-get install -y --no-install-recommends     ssh     git     m4     libgmp-dev     opam     wget     ca-ce  14.9s
 => [ 3/24] RUN useradd -m bot                                                                                                                     0.2s
 => [ 4/24] WORKDIR /home/bot                                                                                                                      0.0s
 => [ 5/24] ADD https://api.github.com/repos/IBM/pycoq/git/refs/heads/main version.json                                                            0.0s
 => [ 6/24] RUN opam init --disable-sandboxing                                                                                                    28.6s
 => => # [ocaml-base-compiler.4.14.0] downloaded from cache at https://opam.ocaml.org/cache
 => => # <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
 => => # ∗ installed base-bigarray.base
 => => # ∗ installed base-threads.base
 => => # ∗ installed base-unix.base
 => => # ∗ installed ocaml-options-vanilla.1

이것은 나에게 실패했습니다.

(meta_learning) brandomiranda~ ❯ docker build -f Dockerfile_arm -t brandojazz/iit-term-synthesis:test_arm ~/iit-term-synthesis/
[+] Building 0.0s (1/2)
 => ERROR [internal] load build definition from Dockerfile_arm                                                                                     0.0s
 => => transferring dockerfile: 40B                                                                                                                0.0s
------
 > [internal] load build definition from Dockerfile_arm:
------
failed to solve with frontend dockerfile.v0: failed to read dockerfile: error from sender: open .Trash: operation not permitted

언급URL : https://stackoverflow.com/questions/17466699/how-do-i-build-a-dockerfile-if-the-name-of-the-dockerfile-isnt-dockerfile