https://github.com/pythaac/chat-server
1차 예상 구성
환경 세팅
- npm 설치
>> sudo apt install npm -y
Steps 따라해보기
- RaspberryPi-1 / zk01 / server-1 에서 진행
- 1. Clone the master branch of the project
>> mkdir vartalap
>> cd vartalap
>> git clone https://github.com/pythaac/chat-server.git - 2. Install dependencies
>> cd chat-server && npm install
- 3. Make copy of .env.tmpl to .env and update the required variables
>> cp .env.tmpl .env
>> vi .env - 수정해본 것
- 8002 포트 열기 (???)
>> ufw allow 8002 - 27017 포트 열기 (MongoDB)
>> ufw allow 27017 - MongoDB
- MONGO_URL=mongodb://zk03:27017/chat
- MONGO_USER / MONGO_PASSWORD - Redis
- REDIS_ENDPOINT=zk02:6379 - Firebase
>> npm install firebase
- FIREBASE_PROJECT_ID
- 서비스 계정 키 생성
- 8002 포트 열기 (???)
서비스 계정 키 생성
1. 프로젝트 설정 > 서비스 계정
2. Firebase Admin SDK > Node.js > 새 비공개 키 생성
3. 생성된 file을 FIREBASE_ADMIN_CRED_JSON_PATH에 copy (service.json으로 rename)
- 4. (일단 해보기) initialize Kafka
>> cd deployment/scripts
>> ./init-kafka.bash /usr/local/kafka ../../.env
/deployment/scripts/setup.bash
- 기본적으로 필요한 파일을 생성하는듯?
discovery_service도 생성해서 만들어야할듯
- discovery_service 설정파일 생성
>> cp services.json.example services.json
- [실패] 실행 시도
>> docker-compose -f docker-compose.yml -f docker-compose.local.yml up -d
- [에러] Version unsupported
- 내 compose version이 1.25
- 아래 docs에서 확인하니 1.27 버전 이상이여야 한다고 함
Docker-compose 버전 업데이트
- docker-compose 삭제
>> sudo apt remove docker-compose -y
>> sudo apt purge docker-compose -y (not installed로 뜸) - [실패] 업그레이드 하면 버전 올라간대서 해봄
>> sudo apt-get upgrade
(커널버전 올라가길래 딱히 종속성 있는 게 없는 것 같아서 3대 모두 진행)
https://dev.to/elalemanyo/how-to-install-docker-and-docker-compose-on-raspberry-pi-1mo
- pip3로 설치 시도
>> sudo apt-get install libffi-dev libssl-dev -y
>> sudo apt install python3-dev -y
>> sudo apt-get install -y python3 python3-pip - [에러] docker-compose가 실행되지 않음
>> docker-compose version
- [해결] 아래 명령으로 문제 해결
>> su
>> pip3 install --upgrade --force-reinstall --no-cache-dir docker-compose && ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
환경 변수 불러오기
https://blog.leocat.kr/notes/2021/05/15/docker-use-env-file
- dotenv 설치
>> npm install dotenv - [실패] 다시 실행
>> sudo docker-compose --env-file ../.env -f docker-compose.yml -f docker-compose.local.yml up -d
- .env에 CONFIG_DIR 추가
- CONFIG_DIR=/home/ubuntu/vartalap/chat-server/deployment/config - .env에 CHAT_SERVER_TAG추가
- [실패] docker image의 tag 확인하기
- 여러 방법들이 있지만 docker hub의 remote registry의 tag를 확인하는 편한 방법은 없음 - docker pull로 땡겨오기
>> docker pull ramank775/chatserver
- tag가 default로 latest로 붙음 - 다음을 추가
- CHAT_SERVER_TAG=latest
- [실패] docker image의 tag 확인하기
- [실패] 재시도
>> sudo docker-compose --env-file ../.env -f docker-compose.yml -f docker-compose.local.yml up -d
- [실패] 해당 서버에서 nginx가 실행중이라 그런듯
- nginx를 죽임
>> systemctl stop nginx.service
>> systemctl status nginx.service (죽었는지 확인) - 재시도
>> sudo docker-compose down (컨테이너를 모두 죽임)
>> sudo docker-compose --env-file ../.env -f docker-compose.yml -f docker-compose.local.yml up
- 똑같음
- nginx를 죽임
- 8080을 사용하는 프로세스 찾기
- port를 사용하는 프로세스의 PID
>> sudo lsof -t -i:8080 - PID의 프로세스 찾기
>> netstat -nltp
- port를 사용하는 프로세스의 PID
Zookeeper admin port 바꾸기
- Zookeeper였음
- zookeeper가 admin default port로 8080을 사용
https://stackoverflow.com/questions/59943241/zookeeper-admin-server-port
- zookeeper admin port 바꾸기
>> sudo vi /usr/local/zookeeper/conf/zoo.cfg
- admin.serverPort=59959 - zookeeper 내렸다 올리기
>> systemctl restart zookeeper-server.service - 8080 포트 확인
>> sudo lsof -t -i:8080
- [실패] 재시도
>> sudo docker-compose down
>> sudo docker-compose --env-file ../.env -f docker-compose.yml -f docker-compose.local.yml up
- .../deplyment/config/nginx에 nginx.conf라는 폴더를 생성
- 왜지? 싶어서 설정을 바꿔봄 - .env의 CONF_DIR를 바꾸기
>> vi .env
- CONF_DIR=/home/ubuntu/vartalap/chat-server/tmp - [실패] 재시도
>> sudo docker-compose down
>> sudo docker-compose --env-file ../.env -f docker-compose.yml -f docker-compose.local.yml up -d
- 똑같음
중간 진행사항 정리
- 로컬 환경에서 docker에 모두 잘 올라가는 것까지 확인하려했으나 너무 길어져서 실패
- nginx 외에는 잘 동작하는듯 - Todo
- Nginx 정상 동작으로 만들기
- 위 진행사항을 실패한 내용 빼고 정리하기
'만들기 > EagleEye' 카테고리의 다른 글
[EagleEye][서비스구현] Spring으로 간단 서비스 구현 (0) | 2022.05.12 |
---|---|
[EagleEye][환경세팅] 채팅 서버 설치 (Vartalap) - 2차 시도 (0) | 2022.05.04 |
[EagleEye][환경세팅] MongoDB 설치 (0) | 2022.05.02 |
[EagleEye][환경세팅] Docker 설치 (0) | 2022.04.27 |
[EagleEye][환경세팅] Redis 설치 (0) | 2022.04.27 |