本文為記錄公司專案中整合 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