본문 바로가기

docker & kubernetes

kubernetes web/was 구성

참조

https://docs.docker.com/engine/reference/commandline/docker/

 

docker

docker: The base command for the Docker CLI.

docs.docker.com

 

1 아파치 서버

 

mod_jk 설치된 도커 이미지 웹서버 만들기 

이미지를 빌드 하기위해서는 도커 설치( 컨테이너 이미지는 alpine을 사용 도커 사용법은 상단 링크 ) 

containerd runtime은 이미지 빌드 기능이 없다

 

# 도커 허브 알파인 이미지를 이용해서 컨테이너를 생성 후 bash shell 접속

# 패키지 업데이트, 아파치 및 컴파일러 설치

apk update OR apk upgrade

apk add apache2-dev ( httpd-devel )

apk add build-base ( gcc )

 

# 커넥터 다운 및 컴파일러 구성

wget http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz

tar –xvf tomcat-connectors-1.2.48-src.tar.gz

cd tomcat-connectors-1.2.48-src/native/

./configure --with-apxs=/usr/local/apache2/bin/apxs

 

# 컴파일 후 설치

make 

make install

 

# jk_global.h:152:10: fatal error: sys/socketvar.h: No such file or directory 오류 발생 시 소켓 파일 추가

# 참조 https://github.com/firesurfing/alpine-mod_jk

vi /usr/include/sys/socketvar.h ( 경로 )

/* This header is used on many systems but for GNU we have everything
 *    already defined in the standard header.  */
#include <sys/socket.h>

 

# 위 작업을 dockerfile로 만들어서 빌드하기 ( 도커 사용법 상단 링크 )

# httpd.conf 및 workers_jk.properties 개인에 맞게 생성

FROM httpd:2.4.43-alpine

RUN apk upgrade && \

        apk add apache2-dev && \

        apk add build-base

COPY socketvar.h /usr/include/sys/socketvar.h

COPY httpd.conf /usr/local/apache2/conf/httpd.conf

COPY workers_jk.properties /usr/local/apache2/conf/workers_jk.properties

RUN wget http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz && \

        tar -xvf tomcat-connectors-1.2.48-src.tar.gz && \

        cd tomcat-connectors-1.2.48-src/native/ && \

        ./configure --with-apxs=/usr/local/apache2/bin/apxs && \

        make && \

        make install

 

# 완료된 컨테이너를 commit 하여 변경 된 이미지를 생성한다 ( 도커 사용법 상단 링크 )

# 글쓴이 도커허브 ( komin86/apa ) 사용가능 

 

 

2 톰캣 서버

 

# 웹앱을 만들어서 도커이미지 생성 ( 부트 기반 웹앱을 dockerfile로 빌드 )

# 글쓴이 도커허브 ( komin/demo ) 사용가능

FROM openjdk:12-jdk-alpine 
EXPOSE 8080
VOLUME /tmp
ADD demo.jar demo.jar
ADD demo_lib demo_lib
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","demo.jar"]

   

 

3 연동

 

# 아파치 와 톰캣 도커이미지 완성 

# 만들어진 도커 이미지들 배포 ( 사용법은 쿠버네티스 배포 참조 )

# 배포 완료 후 정상 running 확인

# 글쓴이 걸 사용할 경우 아파치 파드 bash shell 들어가 workers_jk.properties 환경에 맞게 수정 후 아파치 재시작

 

# curl 테스트 완료 ( return "home" )