2017-11-18 2 views
0

나는 독을 배우려고 애쓰는 초보자입니다. 나는 카프카 설치를 도킹하려하고 0이 아닌 종료 코드로 붙어 있습니다. 나는 문제를 디버그하고 그 이유를 찾고 싶다. 도커 파일을 디버깅하는 방법.Dockerizing kafka는 0이 아닌 종료 코드를 제공합니다.

dockerd -D을 사용하여 디버거 모드에서 도커를 실행 해 보았습니다. 그러나 자세한 로깅을 제공하지 않았습니다.

나는 방황하는 개발 상자 안쪽에 나의 원본을 달리고있다. 디버그 모드에서 빌드를 실행할 수있는 방법이 있습니까?

다음은 내 도커 파일입니다.

FROM library/ubuntu 
RUN \ 
    cd /tmp &&\ 
    apt-get -y update && \ 
    apt-get -y install default-jre && \ 
    apt-get -y install zookeeperd && \ 
    apt-get -y install wget && \ 
    wget "http://mirror.cc.columbia.edu/pub/software/apache/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz" -O kafka.tgz && \ 
    mkdir -p ~/kafka && cd ~/kafka && \ 
    tar -xvzf /tmp/kafka.tgz --strip 1 && \ 

CMD ["nohup","/tmp/kafka/bin/kafka-server-start.sh","/tmp/kafka/config/server.properties",">","/tmp/kafka/kafka.log","2>&1","&"] 

EXPOSE 9092 

로그 :

[email protected]:/home/vagrant/sample_kafka# docker build -f Dockerfile . 
Sending build context to Docker daemon 2.048kB 
Step 1/3 : FROM library/ubuntu 
---> 20c44cd7596f 
Step 2/3 : RUN cd /tmp && apt-get update && apt-get install default-jre && apt-get install zookeeperd && wget "http://mirror.cc.columbia.edu/pub/software/apache/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz" -O kafka.tgz && mkdir -p ~/kafka && cd ~/kafka && tar -xvzf /tmp/kafka.tgz --strip 1 && CMD ["nohup","/tmp/kafka/bin/kafka-server-start.sh","/tmp/kafka/config/server.properties",">","/tmp/kafka/kafka.log","2>&1","&"] 
---> Running in 0334e6d31438 
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB] 
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB] 
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB] 
Get:4 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [52.0 kB] 
Get:5 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [489 kB] 
Get:6 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB] 
Get:7 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.9 kB] 
Get:8 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [224 kB] 
Get:9 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [3479 B] 
Get:10 http://archive.ubuntu.com/ubuntu xenial/universe Sources [9802 kB] 
Get:11 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB] 
Get:12 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB] 
Get:13 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB] 
Get:14 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB] 
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/universe Sources [227 kB] 
Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [851 kB] 
Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.7 kB] 
Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [706 kB] 
Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [18.5 kB] 
Get:20 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [5174 B] 
Get:21 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [6354 B] 
Fetched 24.5 MB in 29s (837 kB/s) 
Reading package lists... 
Reading package lists... 
Building dependency tree... 
Reading state information... 
The following additional packages will be installed: 
    ca-certificates ca-certificates-java dbus default-jre-headless fontconfig 
    fontconfig-config fonts-dejavu-core fonts-dejavu-extra hicolor-icon-theme 
    java-common krb5-locales libasound2 libasound2-data libasyncns0 libatk1.0-0 
    libatk1.0-data libavahi-client3 libavahi-common-data libavahi-common3 
    libbsd0 libcairo2 libcap-ng0 libcups2 libdatrie1 libdbus-1-3 libdrm-amdgpu1 
    libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libedit2 libelf1 
    libexpat1 libffi6 libflac8 libfontconfig1 libfreetype6 libgdk-pixbuf2.0-0 
    libgdk-pixbuf2.0-common libgif7 libgl1-mesa-dri libgl1-mesa-glx 
    libglapi-mesa libglib2.0-0 libglib2.0-data libgmp10 libgnutls30 
    libgraphite2-3 libgssapi-krb5-2 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common 
    libharfbuzz0b libhogweed4 libicu55 libidn11 libjbig0 libjpeg-turbo8 libjpeg8 
    libjson-c2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 liblcms2-2 
    libllvm4.0 libnettle6 libnspr4 libnss3 libnss3-nssdb libogg0 libp11-kit0 
    libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpciaccess0 
    libpcsclite1 libpixman-1-0 libpng12-0 libpulse0 libsensors4 libsndfile1 
    libsqlite3-0 libssl1.0.0 libtasn1-6 libthai-data libthai0 libtiff5 
    libtxc-dxtn-s2tc0 libvorbis0a libvorbisenc2 libwrap0 libx11-6 libx11-data 
    libx11-xcb1 libxau6 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 
    libxcb-render0 libxcb-shm0 libxcb-sync1 libxcb1 libxcomposite1 libxcursor1 
    libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxinerama1 libxml2 
    libxrandr2 libxrender1 libxshmfence1 libxtst6 libxxf86vm1 openjdk-8-jre 
    openjdk-8-jre-headless openssl sgml-base shared-mime-info tcpd ucf 
    x11-common xdg-user-dirs xml-core 
Suggested packages: 
    dbus-user-session | dbus-x11 default-java-plugin libasound2-plugins 
    alsa-utils cups-common gnutls-bin krb5-doc krb5-user librsvg2-common gvfs 
    liblcms2-utils pciutils pcscd pulseaudio lm-sensors icedtea-8-plugin 
    libnss-mdns fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei 
    fonts-wqy-zenhei fonts-indic sgml-base-doc debhelper 
The following NEW packages will be installed: 
    ca-certificates ca-certificates-java dbus default-jre default-jre-headless 
    fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-extra 
    hicolor-icon-theme java-common krb5-locales libasound2 libasound2-data 
    libasyncns0 libatk1.0-0 libatk1.0-data libavahi-client3 libavahi-common-data 
    libavahi-common3 libbsd0 libcairo2 libcap-ng0 libcups2 libdatrie1 
    libdbus-1-3 libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 
    libdrm2 libedit2 libelf1 libexpat1 libffi6 libflac8 libfontconfig1 
    libfreetype6 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libgif7 
    libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglib2.0-0 libglib2.0-data 
    libgmp10 libgnutls30 libgraphite2-3 libgssapi-krb5-2 libgtk2.0-0 
    libgtk2.0-bin libgtk2.0-common libharfbuzz0b libhogweed4 libicu55 libidn11 
    libjbig0 libjpeg-turbo8 libjpeg8 libjson-c2 libk5crypto3 libkeyutils1 
    libkrb5-3 libkrb5support0 liblcms2-2 libllvm4.0 libnettle6 libnspr4 libnss3 
    libnss3-nssdb libogg0 libp11-kit0 libpango-1.0-0 libpangocairo-1.0-0 
    libpangoft2-1.0-0 libpciaccess0 libpcsclite1 libpixman-1-0 libpng12-0 
    libpulse0 libsensors4 libsndfile1 libsqlite3-0 libssl1.0.0 libtasn1-6 
    libthai-data libthai0 libtiff5 libtxc-dxtn-s2tc0 libvorbis0a libvorbisenc2 
    libwrap0 libx11-6 libx11-data libx11-xcb1 libxau6 libxcb-dri2-0 
    libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-render0 libxcb-shm0 
    libxcb-sync1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 
    libxext6 libxfixes3 libxi6 libxinerama1 libxml2 libxrandr2 libxrender1 
    libxshmfence1 libxtst6 libxxf86vm1 openjdk-8-jre openjdk-8-jre-headless 
    openssl sgml-base shared-mime-info tcpd ucf x11-common xdg-user-dirs 
    xml-core 
0 upgraded, 129 newly installed, 0 to remove and 0 not upgraded. 
Need to get 70.9 MB of archives. 
After this operation, 369 MB of additional disk space will be used. 
    /bin/sh: 1: CMD: not found 
The command '/bin/sh -c cd /tmp && apt-get -y update && apt-get -y install default-jre && apt-get -y install zookeeperd && apt-get -y install wget && wget "http://mirror.cc.columbia.edu/pub/software/apache/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz" -O kafka.tgz && mkdir -p ~/kafka && cd ~/kafka && tar -xvzf /tmp/kafka.tgz --strip 1 && CMD ["nohup","/tmp/kafka/bin/kafka-server-start.sh","/tmp/kafka/config/server.properties",">","/tmp/kafka/kafka.log","2>&1","&"]' returned a non-zero code: 127 
+1

'apt-get install'명령은 항상 yes로 대답하기 위해'-y'를 사용해야합니다. – fiskeben

+0

기본 컨테이너 프로세스를 백그라운드로 처리 할 수 ​​없습니다. 'nohup '과 로그 재 지정은 필요하지 않습니다. – Matt

+0

@fiskeben RUN 명령에서 마지막 "&& \"를 제거해야합니다. – yamenk

답변

2

항상 그래서 사용자의 지시가없는 apt-get install -y를 사용합니다.

CMD도 포 그라운드에서 실행해야하며 로그 파일을 사용할 필요가 없습니다. Docker에는 docker logs CONTAINER으로 액세스 할 수있는 stdout/stderr 로깅 인터페이스가 있습니다.

FROM library/ubuntu 
RUN set -uex; \ 
    cd /tmp; \ 
    apt-get update; \ 
    apt-get install -y default-jre zookeeperd; \ 
    wget "http://mirror.cc.columbia.edu/pub/software/apache/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz" -O kafka.tgz; \ 
    mkdir -p ~/kafka; \ 
    cd ~/kafka; \ 
    tar -xvzf /tmp/kafka.tgz --strip 1; 

CMD ["/tmp/kafka/bin/kafka-server-start.sh","/tmp/kafka/config/server.properties"] 

EXPOSE 9092 

나는 데비안 좀 더 자세한 설정을 포함 kafka image on github을 기반으로합니다.

+0

안녕하세요 매트, 다음 오류가 발생합니다./bin/sh : 1 : CMD : 찾을 수 없습니다. – dataEnthusiast

+1

마지막 줄에 백 슬래시가 있습니까? 'RUN' 스크립트? – Matt

관련 문제