다음과 같은 Dockerfile을 빌드 할 수 있습니다.
docker build -t deepak/ruby .
그러나 이름이 지정되지 않은 Dockerfile의 경우 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 빌드의 마지막 매개 변수는 빌드 경로 입니다.이를 입력 .
하면 Dockerfile
. 그것을 변경하면 올바르지 않은 Dockerfile.app
을 찾으려고 시도 Dockerfile.app/Dockerfile
합니다.
여전히 작동하는지 확실하지 않지만 이전에는이 작업을 수행 할 수있었습니다.
$ docker build -t deepak/app - < Dockerfile.app
시도해보고 도움이되지 않는 경우 Docker 문제를 열어이 기능을 다시 추가하거나 다른 이름으로 Dockerfile을 사용하는 방법에 대한 설명서를 업데이트하십시오.
자세한 정보 : http://docs.docker.io/en/latest/commandline/command/build/
답변
dockerfeed 사용해보십시오 . Docker 기능을 사용하여 stdin을 통해 컨텍스트를 빌드합니다. 나는 내가 직면 한 문제를 정확히 해결하기 위해 스크립트를 작성했습니다.
Dockerfile을 다른 파일로 바꾸려면 다음과 같이하십시오.
dockerfeed -d Dockerfile.app . | docker build -t deepak/ruby -
그리고 voilà. Dockerfeed는 docker build
. Dockerfile로 소스를 압축하지만 이전 Dockerfile을 원하는 것으로 바꿀 수 있습니다. 프로세스에서 파일이 생성되지 않으며 소스가 변경되지 않습니다. 생성 된 tar 아카이브는 docker로 파이프되어 Docker 데몬으로 전송됩니다.
업데이트 :
이것은 -f
사용 가능한 스위치 가 없었던 예전에는 유효한 대답이었습니다 . Docker 버전 1.5에서는이 옵션이 도입되었습니다. 이제 다음과 같이 다른 Dockerfile을 제공하여 빌드 할 수 있습니다.
docker build -f other-Dockerfile .
답변
docker-compose를 사용하여이를 달성 할 수도 있습니다.
빌드 섹션 아래의 docker-compose.yml에서 다음과 같이 dockerfile과 대체 이름을 저장할 디렉토리를 지정할 수 있습니다.
build:
context: "/path/to/docker/directory"
dockerfile: "dockerfile-alternate-name"
답변
docker-compose 및 docker-machine을 포함한 docker 도구 상자를 성공적으로 설치했다고 가정합니다 . 이것은 내 docker-compose.yml입니다.
version: '2'
services:
web: ./www/python
ports:
- "5000:5000"
그리고 이것은 Dockerfile 아래에 있습니다.
FROM python:3.4-alpine
ADD ./www/python /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
해당 파일이 정확히 루트 폴더 아래에 있는지 확인하십시오. docker-compose up을 실행하면 웹용 이미지를 빌드 할 것입니다.
답변
내 경우는 /tmp
디렉토리에 있으며 많은 파일이 있으며 docker는 다른 파일을 시도하지만-f <Dockerfile.foo>
가장 깨끗하고 쉬운 (나에게) 해결책은 ( dockerfeed
위의 답변에서) 다음과 같습니다.
cat DockerFile.debian.foo | docker build -t debian.foo -