EC28 [Flask] 플라스크 배포(feat.Docker) 1. main.py main.py의 main함수의 app.run부분을 이렇게 설정한다. main에서 app.run()을 써서 아무 설정 없이 그대로 돌아가도록 하면 flask에 기본적으로 내장돼있는 웹서버를 쓰게된다. 로컬에서는 정말 간편하지만 이걸 서버로 배포할 때는 문제가 생긴다. 어떻게 해도 외부접속이 안되기 때문이다. 따라서 app.run() 말고(=로컬호스트127.0.0.1에서만 돌아간다) app.run(host='0.0.0.0')으로 바꿔야 한다. if __name__ == "__main__": app.run(debug=False, host='0.0.0.0', port=5000) 2. waitress_server.py 생성 여기서 main은 위에서 내가 만든 flask 파일이다. main 파일.. 기록/CI&CD 2022. 10. 12. [AWS] 같은 브랜치에 있는 프론트엔드, 백엔드 자동배포하기 (5) jenkins 컨테이너 내부에 docker 설치 및 Webhook 설정 1. jenkins 컨테이너 내부에 docker 설치 1) sudo, vi, wget 설치 # 컨테이너 접속 docker exec -it jenkins bash apt update apt install vim apt install sudo apt install wget 2) docker 설치 sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common sudo wget -qO- | sh sudo systemctl start docker sudo systemctl enable docker 3) docker.sock 권한변경 sudo chmod 666 /var/run/docker.sock .. 기록/CI&CD 2022. 8. 17. [AWS] 같은 브랜치에 있는 프론트엔드, 백엔드 자동배포하기 (4) Jenkins 설치 및 설정 1. Docker로 Jenkins 설치 1) jenkins 이미지 파일 내려받기 docker pull jenkins/jenkins:lts 2) jenkins 이미지 컨테이너로 실행 ubuntu와 젠킨스 컨테이너 볼륨을 연결한다. ubuntu의 /jenkins 와 컨테이너의 /var/jenkins ubuntu의 /home/ubuntu/.ssh 와 컨테이너의 /root/.ssh ubuntu의 /var/run/docker.sock 와 컨테이너의 /var/run/docker.sock (바깥에 설치된 docker를 jenkins 속 도커에서도 사용할 수 있도록 한다.) 이름은 jenkins, 계정은 root로 한다. docker run -d -p 8080:8080 -p 50000:50000 -v /jenkins:.. 기록/CI&CD 2022. 8. 13. [AWS] 같은 브랜치에 있는 프론트엔드, 백엔드 자동배포하기 (3) Nginx 설치 및 설정 1. Nginx 설치 sudo apt update sudo apt install nginx 2. SSL 인증서 1) certbot 설치 sudo add-apt-repository ppa:certbot/certbot sudo apt install python-certbot-nginx 2) SSL 인증서 가져오기 nginx 플러그인을 사용한다. sudo certbot --nginx -d 도메인주소 차례대로 이메일, 서비스 약관 동의절차를 수행한다. Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgen.. 기록/CI&CD 2022. 8. 12. [AWS] 같은 브랜치에 있는 프론트엔드, 백엔드 자동배포하기 (2) Docker, Docker Compose 설치 1. Docker 설치 1) 사전작업 sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common 2) 자동 설치 스크립트 활용 sudo wget -qO- | sh 3) Docker 서비스 실행하기 및 부팅 시 자동 실행 설정 sudo systemctl start docker sudo systemctl enable docker 4) Docker 그룹에 현재 계정 추가 sudo usermod -aG docker ${USER} # ${USER} 대신 ubuntu를 넣어 진행했다. sudo systemctl restart docker 2. Docker Compose 설치 1) 설치 $ sud.. 기록/CI&CD 2022. 8. 11. [AWS] 같은 브랜치에 있는 프론트엔드, 백엔드 자동배포하기 (1) 초기설정 1. 초기 설정 sudo apt update sudo apt upgrade sudo apt install build-essential 2. java 설치 # 설치 sudo apt-get install openjdk-8-jdk # 버전확인 java -version 3. timezone 설정 sudo rm /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime 4. hostname 설정 sudo hostnamectl set-hostname 이름.localdomain sudo vi /etc/hosts /etc/hosts 맨 윗줄을 변경한다. 127.0.0.1 이름.localdomain 이름 localhost4 localhost4.loca.. 기록/CI&CD 2022. 8. 10. [AWS] ec2에 openVidu on premises 설치하기 1. 사전 작업 Docker와 Docker compose를 미리 설치해야 한다. 설치 방법은 [이 글]에 있다. openvidu는 포트를 많이 쓰기 때문에 아래 포트를 전부 열어야 한다. openvidu의 http, https 포트로 80, 443 외에 다른 걸 쓰려면 그 포트도 연다. (밑의 명령어는 80, 443만 열려있다.) # ufw 설치 sudo apt install ufw # 포트 열기 ufw allow ssh ufw allow 80/tcp ufw allow 443/tcp ufw allow 3478/tcp ufw allow 3478/udp ufw allow 40000:57000/tcp ufw allow 40000:57000/udp ufw allow 57001:65535/tcp ufw allow.. 기록/CI&CD 2022. 8. 9. [AWS] ec2에 mysql 설치하기 1. EC2에서 MySQL 설치 1) 설치 # 설치 sudo apt install mysql-server # root계정 접속 sudo mysql -u root -p 2) 계정 생성 및 권한 부여 CREATE USER '아이디'@'%' IDENTIFIED BY '비밀번호'; FLUSH PRIVILEGES; show grants for '아이디'@'%'; grant all privileges on *.* to '아이디'@'%'; 3) 외부접속 허용 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf # bind-address=0.0.0.0로 변경한다. # 포트 허용 sudo ufw allow out 3306/tcp sudo ufw allow in 3306/tcp # mysql 재시.. 기록/CI&CD 2022. 8. 8. 이전 1 다음