1. 이게뭐약 컨테이너 구축
2. 이게뭐약 CI/CD 구축
3. 안드로이드 애플리케이션 플레이스토어 인증 방법 검색
이게뭐약 컨테이너 구축
- 메인서버
: openjdk 이미지
: env 파일 생성 후 env에 DB_address, DB_port, username, password
: MySQL 이미지 다운로드 후 user 추가
- DL 서버
: 파이썬 이미지
=> 도커 파일 작성
서버내 jdk11 설치
yum install java-11-openjdk-devel.x86_64
※ 삭제한 java 명령어 복구 및 bash: /usr/bin/java: No such file or directory 해결
cd /usr/lib/jvm/
ls
ln -s /usr/lib/jvm/jre-11-openjdk-11.0.12.0.7-0.el7_9.x86_64/bin/java /etc/alternatives/java
ln -s /usr/lib/jvm/jre-11-openjdk-11.0.12.0.7-0.el7_9.x86_64/bin/java /usr/bin/java
java -version
※ Caused by: java.net.UnknownHostException 해결법
vi /etc/hosts
127.0.0.1 cl-EFSS-linux16
::1 위에 추가
=> 해결불가. DB와의 connection 문제로 보임
docker run -e MYSQL_ROOT_PASSWORD=wip-dbpp -d -p 3306:3306 mysql:8.0.2
순서
1. DB 서버 실행 -> 메인서버 실행 -> DL서버 실행
레포지터리 병합
0. 레포지터리 생성 및 git clone
1. 신규 레포지터리로 이동
2. git remote add <합칠 레포지터리 이름> <합칠 레포지터리 주소>
3. git fetch <합칠 레포지터리 이름>
4. git merge --allow-unrelated-histories <합칠 레포지터리 이름/브랜치>
5. git add .
6. git commit -a
7. git push -u origin 브랜치
커밋 되돌리기
git log
git revert 커밋주소
1. 각 서버 컨테이너화
ㆍDL 서버
※ ImportError: libGL.so.1: cannot open shared object file: No such file or directory
: RUN apt-get update && apt-get -y install libgl1-mesa-glx \
※ 필요 파일 다운로드
&& wget -P=/usr/src/wip/weights --no-check-certificate 'https://docs.google.com/uc?export=download&id=1Jk4eGD7crsqCCg9C9VjCLkMN3ze8kutZ' -O craft_mlt_25k.pth \
&& wget -P=/usr/src/wip/weights --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1pBHtpsecIVQptD3HoWt61gwBIgO2uHCR' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1pBHtpsecIVQptD3HoWt61gwBIgO2uHCR" -O fine_tuned.pt && rm -rf /tmp/cookies.txt \
&& wget -P=/usr/src/wip/weights --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1yLixadZ_3Ls4x_TR0-8MG6-iQSEn5ZSG' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1yLixadZ_3Ls4x_TR0-8MG6-iQSEn5ZSG" -O pill_recog_model.pth && rm -rf /tmp/cookies.txt \
구글 드라이브 참조 (https://m.blog.naver.com/sssang97/221786881113)
ㆍmain 서버
: build gradle 추가
=> build 할때 DB서버가 켜져있어야함
=> 일단 compose파일에서 build를 수행시키고 (build 이미지와 deploy이미지 분리) => volume 공유
=> network 생성
docker run -e MYSQL_ROOT_PASSWORD=wip-1997 -d -p 3306:3306 mysql:8.0.2
※ SSL peer shut down incorrectly
RUN bash ./gradlew clean build -Dhttps.protocols=TLSv1.2
SSL 관련
=> https://susoterran.github.io/mysql/mysql_privatecertificate/
mysql -u root -p find_pill
wip1997
show variables like '%ssl%';
grant all privileges on *.* to 'wip'@'%' identified by 'wip1999' require SSL;
flush privileges;
update user set ssl_type = 'ANY' where user = 'wip';
1. Database 설정
mysql -u root -p find_pill
==================
유저 생성
use mysql;
create user wip@main identified by 'wip1999';
grant all privileges on *.* to wip@main identified by 'wip1999';
flush privileges;
select host, user from user;
유저 삭제
use mysql;
delete from mysql.user where User ='wip';
delete from mysql.db where User ='wip';
flush privileges;
=> 2mukee/wip-db-deploy:1.0으로 commit 및 배포
2. 메인서버
: 앱에서 18080포트로 접속 (포트 열기 완료)
ㆍ크롬 드라이버 설치
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
bash -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
apt-get update -y
apt-get install -y google-chrome-stable=95.*
google-chrome --version
# 95버전
wget -N https://chromedriver.storage.googleapis.com/95.0.4638.17/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
3. 애플리케이션
=> 에뮬레이터 구동문제
Could not dispatch a message to the daemon.
: gradle 다운로드 후 환경변수 설정하고 gradle stop
진행상황
1. 메인서버 및 딥러닝 서버 테스트 완료
2. 메인서버 및 딥러닝 서버 컨테이너 안정화 완료
3. 데이터베이스 서버 컨테이너 안정화 완료
애플리케이션 플레이스토어 앱 출시
1. 구글 개발자 계정 생성 (구글 콘솔에서 25달러 결제 필요)
: https://play.google.com/console/u/0/signup
: 참조 (https://wp.swing2app.co.kr/knowledgebase/google-developer/)
2. 구글 플레이 개발자 콘솔 접속
: https://play.google.com/console/u/0/developers
: 앱만들기 > 항목 기입 > 대시보드에서 앱설정 완료
참조 (https://wp.swing2app.co.kr/knowledgebase/playstore-apprelease/)
1. 이게뭐약 리뉴얼 앱 플레이스토어 배포 완료
2. 이게뭐약 리뉴얼 앱 자동 배포
Firebase App Distribution + fastlane
fastlane
: Android 및 ios 앱의 개발 및 출시 프로세스를 자동화하는 오픈소스 도구
ㆍ기능
: 앱 스토어에 대한 현지화 된 스크린샷 자동 생성
: 테스터에게 베타 빌드 배포
: 몇 초만에 릴리스 게시
: 코드 서명 처리
ㆍ필요사항
: 기본적으로 macOS에서 지원 / Linux 및 Windows는 부분적으로 지원
: 2.4~2.7 버전의 Ruby 설치 필요
ㆍ구성요소
: 번들러 (Fastlane에 대한 종속성 정의)
ㆍ환경구성
: sudo gem install fastlane
: brew install fastlane
: 프로젝트 폴더에 /fastlane/FastFile 생성
: fast init
=> 이후 firebase와 연동하여 Firebase App Distribution을 통해 자동으로 배포
=> firebase와 연동 참조 (https://firebase.google.com/docs/app-distribution/android/distribute-fastlane?hl=ko)
Refference
디스크 용량 체크
df -hT
: sda2의 centos-root의 용량이 꽉차 데이터를 centos-home으로 옮길 예정
가장 많은 용량을 차지하는 디렉터리 확인
1. root 디렉터리에서 du -h --max-depth=1
2. 위 방법으로 가장 큰 용량을 차지하는 디렉터리로 이동
3. docker가 가장 많은 용량을 차지
Docker 데이터 디렉터리 변경
=> 이 방법의 경우 기존 데이터가 있을 경우 옮겨도 적용이 안됨
1. 도커 데이터 경로 확인
docker info | grep Root
2. 도커 데몬 상태 확인
service docker status
: Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) 부분 확인
: /usr/lib/systemd/system/docker.service 복사
3. centos/root의 용량을 많이 차지하므로 /home 디렉터리로 옮길 준비
: cd /home
: mkdir docker-data
3. 도커 데이터 디렉터리 변경
vi /usr/lib/systemd/system/docker.service
: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 부분 찾기
: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/home/docker-data 로 변경
4. 도커 데이터 파일 옮기기
mv /var/lib/docker /home/docker-data
5. 도커 데몬 재시작
service docker stop
service docker start
5. 적용여부 확인
docker info | grep Root
: 적용이 안됐을 경우 재부팅
기존 데이터가 있는 경우 도커의 데이터 디렉터리를 바꾸는 방법
1. 데이터 복제
: mv /var/lib/docker /home/docker-data
2. daemon.json 생성
vi /etc/docker/daemon.json
{
"graph": "도커 데이터 경로로 지정할 위치" # 필자는 "graph": "/home/docker-data/docker" 로 사용
}
3. 도커 재시작 및 적용 확인
service docker stop
systemctl daemon-reload
service docker start
Refference
https://jybaek.tistory.com/797
'Development > Project' 카테고리의 다른 글
211207 ~ 211210 fc- 개발일지 (0) | 2022.01.30 |
---|---|
211116 ~ 211206 fc- 개발일지 (0) | 2022.01.30 |
모해묵지 프로젝트 Readme (0) | 2021.11.28 |
Hermes - flutter / dart 정리 (0) | 2021.10.20 |
Hermes 개발일지 (0) | 2021.10.20 |