🎈 문제상황
지난 포스트에서 `Termux`에서 qemu를 사용해 alpine linux container를 띄워서 그 안에서 `docker`를 사용해 프로젝트를 띄웠습니다. 하지만 속도가 굉장히 느렸고 prometheus, grafana 관련 에러가 지속적으로 발생해 모니터링 스택을 임시로 없애고 termux만을 사용해 웹서버를 구축하기로했습니다.
그럼 termux에서 spring application을 돌려봅시다!!
🎈 사전 준비
안드로이드 기기와 와이파이를 사용해 자체 배포하는 방법입니다.
안드로이드 기기는 termux를 다운받고 권한을 허용해주면 되며 와이파이는 몇 개의 설정을 수정해줘야합니다.
해당 설정들을 termux에서 docker를 사용하기 위한 포스팅에서 이미 설정을 했으므로 해당 포스팅을 보며 와이파이 설정을 해주시면 됩니다.
https://klaus9267.tistory.com/41
핸드폰으로 Docker를 사용해 백엔드 서버를 무료 배포해보자!(without Root)
🎈문제상황외부 프로젝트 팀에 참가해 작업했던 프로젝트의 EC2 기간이 끝났습니다. 해당 프로젝트는 기능 개선 후 추가 개발 예정이라 기획 / 디자인 팀에서 심혈을 기울여 작업중에 있으며 인
klaus9267.tistory.com
🎈 termux에 java 설치
지난 포스트에서 git, wget와 같은 기본 패키지들은 설치했으니 넘어가겠습니다.
이제 docker가 아닌 `gradle`을 사용해 build할 예정이니 먼저 java를 설치하겠습니다.
pkg install openjdk-17
project에서 java 17을 사용해서 해당 버전을 설치했습니다. 다른 버전도 설치 가능합니다.
🎈 tmux 설치
tmux is a terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal.
`tmux`는 spring application을 백그라운드에서 실행시키기 위한 도구입니다.
정확히는 레포에서 설명하는 것처럼 여러개의 터미널을 실행시킬 수 있는 도구로 해당 터미널들은 백그라운드에서 계속 실행되며 해당 터미널들은 하나의 세션이라고 불립니다. 또 각각의 세션들을 명령어를 통해 접속, 관리 할 수 있습니다.
pkg install tmux
tmux new -s [application name] // 세션 생성
tmux attach -t [application name] // 세션 접속
tmux ls // 활성화된 세션 목록 확인
세션에서 나올 땐 ctrl + d를 입력하시면 되는데 만약 spring, nest와 같이 application을 실행시킨 상태에서 입력하면 탈출이 안됩니다. 그러면 그냥 터미널창을 끄고 다시 시키면 됩니다. 백그라운드에서 실행중이기 때문에 꺼지지않고 정상작동됩니다.
🎈 java & spring application 실행
이제 프로젝트를 clone후 git에 업로드를 안한 환경변수 파일들을 vi로 생성해줍니다.
spring application을 실행하려면 먼저 build를 해야합니다. 그러면 build/libs 경로에 jar 파일이 만들어지고 이 파일을 실행하면 프로젝트가 실행되며 배포가 완료됩니다 :)