本文為記錄公司專案中整合 apache和tomcat在docker上執行的實例,Apache套件是另外安裝,tomcat則是拿搭配JRE 1.7的版本 
  
  
    
      Dockerfile - Apache
    
  
FROM ubuntu
ENV TZ=Asia/Taipei
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && apt-get install -y --no-install-recommends apache2 libapache2-mod-jk
RUN a2enmod proxy
RUN a2enmod proxy_http
RUN a2enmod proxy_balancer
RUN a2enmod proxy_wstunnel
ADD ./conf/apache2.conf /etc/apache2/apache2.conf
ADD ./conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf
ADD ./conf/worker.properties /etc/libapache2-mod-jk/workers.properties
ADD ./conf/jk.conf /etc/apache2/mods-available/jk.conf
VOLUME ["/var/log/apache2"]
EXPOSE 80 443
CMD ["apachectl", "-k", "start", "-DFOREGROUND"]
  
    conf/jk.conf
JKMount /htdocs/* web_1
  
    
      conf/apache2.conf
    
  
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
  
    
      Dockerfile - Tomcat
    
  
FROM tomcat:7-jre7
ENV TZ=Asia/Taipei
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#把編譯好的war檔包進去
COPY ./webapps/wales-test.war /usr/local/tomcat/webapps/
# 一些tomcat的context 設定 
COPY ./wales-test.xml /usr/local/tomcat/conf/Catalina/localhost/ 
COPY ./lib/mysql-connector-java-5.1.28-bin.jar /usr/local/tomcat/lib/ 
COPY ./lib/proxool-0.9.1.jar /usr/local/tomcat/lib/ 
COPY ./lib/proxool-cglib.jar /usr/local/tomcat/lib/ 
COPY ./lib/commons-logging-1.2.jar /usr/local/tomcat/lib/ 
EXPOSE 8009
  
    
      docker-compose.yml
    
  
version: "2" 
  services:
    tomcat:
      volumes:
      - ./tomcat/logs:/usr/local/tomcat/logs 
      expose:
      - 8009
      Image: wales /tomcat
      container_name: "tomcat"
      build: ./tomcat
      environment:
      - JAVA_OPTS=-Djava.security.egd=file:/dev/./urandom
      networks:
        wales_net:
            ipv4_address: 192.168.1.2
    http:
      volumes:
      - ./httpd/logs:/var/log/apache2
      ports:
      - "80:80"
      - "443:443"
      image: wales/httpd
      container_name: "httpd"
      build: ./httpd
      networks:
        wales_net:
            ipv4_address: 192.168.1.3
  
  #另外指定docker要用的網路區段
  networks:
    wales_net:
        driver: bridge
        ipam:
            driver: default 
            config:
                subnet: 192.168.1.0/24
    
    
      啟動服務
    
  
docker build -t devmaster/httpd httpd/
docker build -t devmaster/tomcat tomcat/
docker-compose up -d
沒有留言:
張貼留言