2017-03-02 381 views
0

我嘗試啓動dockercontainer內的filebeat。如何在Docker容器內啓動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"] 

在這種情況下filebeat啓動開始,但它在控制檯的工作原理和Tomcat沒有啓動。 現在我試着開始filebeat作爲服務

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"] 

但還是老樣子根本不會啓動。 在這些varint之前,我有一些其他varints,但他們不工作。 例如像這樣

CMD [ 「/etc/init.d/filebeat」, 「開始」]

如何開始filebeat?

回答

3

你的方法有點不對。 想想微服務體系結構。每個容器需要一個微服務。

請嘗試以下操作:

您需要2個獨立的容器在這裏。一個用於tomcat,另一個用於filebeat。然後,您將在適當的位置在tomcat容器中安裝卷,以便在那裏獲取日誌文件。

然後,您將在filebeat上同時掛載相同的日誌卷,同時只讀,並使用filebeat開始發送日誌。

這樣你就會尊重微服務架構和docker的哲學。

相關問題