2017-03-02 5 views
0

dockercontainer에서 filebeat를 시작하려고합니다. 나는이 경우 filebeat이 Dockerfile도커 컨테이너에서 파일 시작이 어떻게 시작됩니까?

FROM tomcat:8.5 
RUN rm -Rf /usr/local/tomcat/webapps/ROOT/* 
RUN mkdir /usr/local/tomcat/webapps-my 

COPY filebeat/ /opt/filebeat/ 
RUN chmod +x /opt/filebeat/filebeat 

COPY db-creator.jar /opt/db-creator/ 

COPY ./docker-entrypoint.sh/
RUN chmod +x /docker-entrypoint.sh 
ENTRYPOINT ["/docker-entrypoint.sh"] 
ENTRYPOINT ["/opt/filebeat/filebeat", "-e", "-c", "/opt/filebeat/filebeat.yml"] 
COPY server.xml /usr/local/tomcat/conf 
COPY my.war /usr/local/tomcat/webapps-my/ROOT.war 

CMD ["catalina.sh", "run"] 

에 의해 시작하려고 시작에서

가 시작하지만 콘솔에서 작동하고 Tomcat은 시작하지 않습니다. 는 지금은 서비스

FROM tomcat:8.5 
RUN curl -L -O https://artifacts.elastic.co/downloads/beats/fileb... 
RUN dpkg -i filebeat-5.2.2-amd64.deb 
COPY filebeat.yml /etc/filebeat 
RUN update-rc.d filebeat defaults 95 10 

COPY db-creator.jar /opt/db-creator/ 
COPY ./docker-entrypoint.sh/
RUN chmod +x /docker-entrypoint.sh 
ENTRYPOINT ["/docker-entrypoint.sh"] 

RUN rm -Rf /usr/local/tomcat/webapps/ROOT/* 
COPY server.xml /usr/local/tomcat/conf 
RUN mkdir /usr/local/tomcat/webapps-my 
COPY my.war /usr/local/tomcat/webapps-iqp/ROOT.war 

CMD ["catalina.sh", "run"] 

로 filebeat 시작하려고하지만 STIL 전혀 시작되지 않습니다. 이들 사이에 다른 varint가 있지만 작동하지 않습니다. 이

CMD

가 어떻게 filebeat 시작할 수 있습니다 [ "/etc/init.d/filebeat", "시작"]와 같은 예를 들어 뭔가?

답변

3

귀하의 접근 방식이 다소 잘못되었습니다. 마이크로 서비스 아키텍처에 대해 생각해보십시오. 컨테이너 당 하나의 마이크로 서비스가 필요합니다.

다음을 시도하십시오.

여기에는 2 개의 별도 용기가 필요합니다. 하나는 tomcat이고 다른 하나는 filebeat입니다. 그런 다음 로그 파일을 얻을 수 있도록 tomcat 컨테이너의 적절한 위치에 볼륨을 마운트합니다.

그런 다음 동일한 로그 볼륨을 filebeat에 동시에 읽기 전용으로 마운트하고 filebeat를 사용하여 로그를 보내십시오.

이렇게하면 마이크로 서비스 아키텍처와 도커 철학을 존중하게됩니다.