티스토리 뷰

728x170

본 포스팅에서는 Dockerfile로 Image 생성 시 오류에 대한 해결 방안입니다.


먼저 Dockerfile은

# cat Dockerfile

FROM ubuntu:16.04

ADD /home/nrson/httpd-2.2.34.tar /root/dockerT/source

WORKDIR /root/dockerT/source

RUN ./configure; make; make install

EXPOSE 80

CMD [ "/usr/sbin/httpd" ]

#

베이스 이미지 ubuntu:16.04에 httpd 소스를 가지고 빌드 및 설치를 한 후, 80 포트를 개방하고 httpd를 실행하는 예제입니다.

[Error Message]

[root@k8s-master dockerT]# docker build --tag centos/httpd /root/dockerT/

Sending build context to Docker daemon  38.78MB

Step 1/6 : FROM ubuntu:16.04

 ---> b9e15a5d1e1a

Step 2/6 : ADD /root/dockerT/httpd-2.2.34.tar /root/dockerT/source

ADD failed: stat /var/lib/docker/tmp/docker-builder565576566/root/dockerT/httpd-2.2.34.tar: no such file or directory

[root@k8s-master dockerT]#


구글링을 겁나게 했지만,, 정확한 답을 찾지를 못하겠네요 ㅠ.ㅠ

이래 저래 해보다가 찾아낸 결과는 

Step 2단계인 add 실행 시 복사대상을 절대주소로 변경하니 정상적으로 처리가 되더라구요.(??)

한번 변경해 볼까요?


수정된 Dockerfile은

FROM ubuntu:16.04

ADD ./httpd-2.2.34.tar /root/dockerT/source

WORKDIR /root/dockerT/source

RUN ./configure; make; make install

EXPOSE 80

CMD [ "/usr/sbin/httpd" ]


자 그럼 실행해 볼까요?

[root@k8s-master dockerT]# docker build --tag centos/httpd /root/dockerT/

Sending build context to Docker daemon  38.78MB

Step 1/6 : FROM ubuntu:16.04

 ---> b9e15a5d1e1a

Step 2/6 : ADD ./httpd-2.2.34.tar /root/dockerT/source

 ---> Using cache

 ---> 78c5008d3960

Step 3/6 : WORKDIR /root/dockerT/source

 ---> Using cache

 ---> d56e2d117856

Step 4/6 : RUN ./configure; make; make install

 ---> Running in b21c9f0983d1

/bin/sh: 1: ./configure: not found

/bin/sh: 1: make: not found

/bin/sh: 1: make: not found

The command '/bin/sh -c ./configure; make; make install' returned a non-zero code: 127

[root@k8s-master dockerT]#


오 대박 정상적으로 수행되네요.

물론... Apache configure에 문제가 있지만,,

이건 제가 다시 찾아보고 포스팅할게요!

그리드형
댓글
댓글쓰기 폼