infra/Docker

Rocky9.1 + tomcat Dockerfile

jjuni_96 2024. 1. 10. 22:33
728x90

원래는 CMD, ENTRYPOINT 같이 쓰지 않음...

2024.01.09 - [infra/Docker] - Dockerfile 에서 CMD, ENTRYOINT 차이

 

FROM rockylinux:9.1

#USER root # 우리는 super로 변경할 예정이라 제거

# 필요한 패키지 설치
RUN yum clean all \
 && yum repolist \
 && yum -y install ncurses net-tools openssh-server procps tcpdump man tar unzip vi iproute telnet iputils traceroute openssl\
 && yum -y install wget vim telnet apr  \
 && yum -y install apr-util apr-devel apr-util-devel \
 && yum -y install openssl \
 && yum -y install python-setuptools \
 && yum -y install java-1.8.0-openjdk \
 && yum clean all

# tomcat 설치 및 profile 설정
RUN mkdir /usr/local/tomcat
RUN wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24.tar.gz -O /tmp/tomcat.tar.gz
RUN cd /tmp && tar xvfz tomcat.tar.gz
RUN cp -Rv /tmp/apache-tomcat-8.5.24/* /usr/local/tomcat/
RUN rm -rf /tmp/* && rm -rf /usr/local/tomcat/webapps/*
RUN echo "$JAVA_OPTS -Dspring.profiles.active=SPRING_PROFILES_ACTIVE" > /usr/local/tomcat/bin/setenv.sh
RUN chmod 777 /usr/local/tomcat/bin/setenv.sh
RUN echo "export JAVA_OPTS=\"-Dspring.profiles.active=real\"" > /usr/local/tomcat/bin/setenv.sh
RUN chmod 777 /usr/local/tomcat/bin/setenv.sh

# 흠... dnf 영역은 빌드 시 에러가 발생하고, curl 부분은 잘 작동하기때문에 주석으로 처리 
#RUN dnf -y install curl
#RUN dnf -y install elinks
#RUN yum -y install locate

# 날짜설정
RUN date
ENV TZ=Asia/Seoul
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN echo "alias ll='ls --color=auto -alF'" >> ~/.bashrc
RUN source ~/.bashrc

# ssh 접속 허용 및 alias 등록
RUN echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
RUN echo "alias webstart='/usr/local/tomcat/bin/startup.sh'" >> ~/.bashrc
RUN echo "alias webstop='/usr/local/tomcat/bin/shutdown.sh'" >> ~/.bashrc
RUN echo "alias weblog='tail -f /usr/local/tomcat/logs/catalina.out'" >> ~/.bashrc

# sshd 재시작
CMD ["/usr/sbin/sshd", "-D"]

# tomcat sutdown 시 쓰레드가 남아서 안죽는경우가 많아서 넣어놓음 (선택요소)
RUN sed -i '$ d' /usr/local/tomcat/bin/startup.sh -i
RUN echo "export CATALINA_PID=/usr/local/tomcat/bin/catalina.pid" >> /usr/local/tomcat/bin/startup.sh
RUN echo 'exec "$PRGDIR"/"$EXECUTABLE" start "$@"' >> /usr/local/tomcat/bin/startup.sh

# 컨테이너 재기동 시 tomcat service enable 파일 설정
COPY tomcat.service /etc/systemd/system
RUN systemctl enable tomcat
WORKDIR /usr/local/tomcat

# 내/외부 게이트웨이 변경 및 실행
ENTRYPOINT ["sh", "-c", "route del default gw 10.101.1.1 && ip route add default via 10.101.2.1 dev eth1 metric 1000 && /sbin/init"]
728x90
반응형
LIST