질문을 삭제하지 말아주세요.!
 
1
0
-1

도커 써보려고 삽질을 많이 하고 있습니다.

오늘 하고있는 삽질은 컴포저 컨테이너를 사용하지 않고 컴포저를 사용하는 겁니다.


컴포저로 패키지를 땡겨와서 설치할 때 git과 zip을 필요로해서 Dockerfile에 다음과 같이 git과 zip을 설치하게 했는데요.

FROM php:7.0-apache

RUN apt-get update
RUN apt-get install wget git zip -y

RUN wget wget https://raw.githubusercontent.com/composer/getcomposer.org/1b137f8bf6db3e79a38a5bc45324414a6b1f9df2/web/installer -O - -q | php -- --quiet

RUN mv composer.phar /usr/local/bin/composer


문제는 git 설치하는게 너무 오래 걸려서 빌드하는데 시간이 엄청 많이 소요되네요.

원래 그런건가요? 아니면 제가 완전 잘못 접근하고 있는 걸까요?



    CommentAdd your comment...

    3 answers

    1.  
      2
      1
      0

      도커를 개발용으로 쓰시는 건가요? 아니면 상용으로 패키징하려는 것인가요?


      1) 개발용으로 쓴다면,

      • 애플리케이션을 담고 있는 폴더를 도커에 마운트하면, 호스트의 애플리케이션 폴더에서 컴포저 명령을 수행해서 install/update를 할 수 있으므로, 굳이 도커 컨테이너 안에 컴포저를 설치할 이유가 없습니다.

      2) 상용으로 쓴다면,

      • Dockerfile에 ADD 또는 COPY 지시자를 이용해서 보통 애플리케이션 폴더를 도커 이미지 안에 넣습니다.
      • 컴포저는 빌드 타임 도구이므로, 도커 이미지 빌드 하기전에 로컬(또는 빌드 머신)에서 전부 설치해 놓고, vendor까지 전부 설치된 상태로 도커 이미지를 빌드하는게 모범사례입니다.

      결론은 "도커 이미지 안에서 컴포저를 설치할 이유가 없다"입니다. 개발용으로 쓰는 도커에서 굳이, 도커 컨테이너에 쉘로 들어가서 composer 명령을 써야 한다면, docker run 할 때 -v "로컬컴포저경로":"/홈경로/composer" 로 마운트하시면 될 겁니다.

        CommentAdd your comment...
      1.  
        1
        0
        -1

        그렇게 설치되는 양이 많지는 않은 것으로 보니 일시적으로 느린 경우거나 인근에 있는 kaist나 daum 같은 저장소에서 받지 못하는 것 같습니다. 이미 아시겠지만 해당 Dockerfile을 도커허브에 올려 이미지를 호스팅 한다면 빠르게 사용할 수 있습니다.

        저는 볼륨을 마운트 하니까 로컬에 설치된 git을 사용하는 쪽이긴 한데 git을 컨테이너에 설치한다면 하나의 앱이라고 생각하고 별도의 컨테이너로 관리하는게 맞다고 생각합니다. 컴포저도 별도로 두고 있고요. 저는 개발/배포를 각각의 docker-compose.{env}.yml 로 두고 사용하고 있습니다.


        1. 이현석

          "git을 컨테이너에 설치한다면 하나의 앱이라고 생각하고 별도의 컨테이너로 관리하는게 맞다고 생각합니다."
          → git을 컨테이너에 설치하는게 아니라 git 컨테이너를 쓰는게 낫다는 말씀이시죠?

        2. 용균

          네 맞습니다. 문장이 명확하지 않았네요.

        CommentAdd your comment...
      2.  
        1
        0
        -1

        git 설치만 오래 걸리시나요?

        apt update가 보통 오래걸리긴 합니다.

        리눅스 패키지 설치가 느린 경우 사용하고 계신 인터넷의 해외망 속도 의심 한번 해보세요.

        오늘 구글 DNS 문제도 영향 있을것 같네요.

        평상시(제 기준에) git 패키지 설치한다고 오래걸리진 않았습니다. 최소한 composer 보단 빠릅니다.

        1. 이현석

          정보와 의견 감사합니다~
          윤학님은 git 패키지 설치할 때 오래 걸리지 않는다는 말씀이시군요. 

          오늘 같은 경우는 git만 오래 걸리더라구요. 정확히 말하면 git 이외에 관련된 녀석들을 꽤 많이 받던데, 그것들을 받을 때 시간이 꽤 걸렸습니다. 


        CommentAdd your comment...