본문 바로가기

공부기록/Backend

(9)
[docker] 백엔드 docker-compose 파일 build 에러 디버깅해보기 3 (Error connecting to database ConnectionRefuseError 에러) - 해결완료!!! 1. 에러상황 : Error connecting to database ConnectionRefuseError 2. 시도해본 것들 3. 에러 해결 성공! 4. 작은 에러 docker-compose up 했을때 서버 유지되지 않는문제 1. 에러상황 : 2. 시도해본 것들 1) docker container mysql의 port 변경해보기 로컬 mysql과 충돌될 수 있으므로 host port를 3306에서 3307로 변경해본다. sequelize를 사용하는 곳에도 똑같이 port를 3307로 변경해준다. 2) docker container의 ip 확인하기 docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' [containe..
[docker] 백엔드 docker-compose 파일 build 에러 디버깅해보기 2 에러상황 구현하고자 했던 것 성공적으로 완료하면 디버깅 방법 1. 문제 1. env파일에 작성한 환경변수 잘 불러와지는가? 문제 2. docker-compose up했을 때 build가 되지 않음 문제 3. 각각의 옵션을 잘 알지 못하며 무엇을 빼놓았는지 알지 못함 에러상황 해결 아직 해결 하지 못한 에러 에러상황 : docker-compose 파일을 활용해 build를 하면 container를 생성하지 못함 구현하고자 했던 것 node와 mysql의 연동을 위해 docker-compose파일을 활용하여 build에 성공 하기 성공적으로 완료하면 docker-compose up container가 잘 생성되고, run을 했을 때 5001포트가 잘 실행될 것임 문제 1. env파일에 작성한 환경변수 잘 불..
[docker] 백엔드 docker-compose 파일 build 에러 디버깅해보기 1 하고자 하는 것 : docker container로 각각 mysql과 node를 생성해서 서로 연결하기 백엔드 초기세팅 : 의문점 1. 백엔드 서버와 mysql 연동은 정상적으로 작동 중인가? mysql과 node 컨테이너 : 의문점 2. mysql과 node 컨테이너는 각각 정상 작동 하는가? 1. node : 컨테이너 빌드 에러없음 [문제점 1] node 컨테이너에서 mysql 컨테이너에 접속할 수 없음 2. mysql : 컨테이너 접속 에러 없음 [문제점 2] docker-compose 파일을 활용해 build를 하면 에러가 뜸 (다음 포스팅) 백엔드 초기세팅 의문점 1. 백엔드 서버와 mysql 연동은 정상적으로 작동 중인가? 1. node로 실행하면 정상 실행 완료 2. express serve..
docker compose 파일에 network 간단한 구성 네트워크 종류 bridge, host, overlay bridge : 하나의 호스트 컴퓨터 내에서 여러 컨테이너들이 소통 할 수 있게 host: 컨테이너를 호스트 컴퓨터와 동일한 네트워크에서 컨테이너를 돌리기 위해 사용 overlay: 여러 호스트에 분산되어 돌아가는 컨테이너들 간에 네트워킹을 위해서 사용 구현 해볼 것 sql과 node를 각각 container를 만들어 docker에 띄우고 그 둘이 서로 하나의 호스트 컴퓨터 내부에서 통신할 수 있도록 한다. 그러기 위해서는 bridge를 사용하면 될 것같다. 1. 네트워크 생성 docker network create [사용할 네트워크 명] 2. 네트워크 목록 확인 (생성되었는지 볼 수 있음) docker network ls 3. 네트워크 상세 정보 보..
docker 명령어 모음 (업데이트중) docker 실행중인 프로세스 확인 docker ps -al docker-compose build하기 docker-compose up --build docker container docker container 생성하기 docker container run [환경설정 옵션] 이미지명 [:태그명] [인수] ex: docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=[패스워드] -d -p 3305:3306 mysql:latest 옵션 --env=[환경변수], -e 환경변수 설정 --env-file=[파일명] 환경변수를 파일로부터 설정 --read-only=[true | false] 컨테이너 파일 시스템을 읽기 전용으로 만들기 --workdir=[패스], -w ..
[mysql] 비밀번호 설정하기 mysql 을 설치할 때 비밀번호를 설정하지 않았다. 접속하기 명령어 : mysql -u root -p; password설정하기 (반드시 뒤에 세미콜론 입력 ;) ALTER USER 'root'@'localhost' IDENTIFIED BY '바꾸고자하는 비밀번호'; 설정하고 나가서 확인 정상적으로 종료하면 아래와 같이 뜸 exit; 다시접속 mysql -u root -p 접속이 기존 방식대로 password를 입력하지 않으면 접속 거부가 뜸 설정한 password로 입력하면 잘 뜨는 것을 알 수 있음
[python] 파이썬 vscode에서 가상환경 설정하기 파이썬 vscode 가상환경 설정하기 https://velog.io/@awesome-hong/VScode에서-가상환경-설정-Flask-설치하기 파이썬의 venv 모듈로 가상 환경 사용하기 https://www.daleseo.com/python-venv/#google_vignette python3 -m venv .venv 모듈을 의미 (-m) (venv모듈 실행) (디렉토리 이름) .venv파일을 가진 새로운 가상환경 폴더 생성 가상환경이 설정된 상태에서 패키지를 설치하면 .venv폴더 내부에 설치되므로 컴퓨터 내부의 python이나 다른 프로젝트 python에 영향을 미치지 않음 가상환경 활성화 . .venv/bin/activate (혹은 source .venv/bin/activate) 어떤 패키지가 가..
[mysql] ECONNREFUSE 일때 소켓연결 하기 방법 1. 소켓파일의 위치 찾기 (해결x) find / -name mysql.sock 그러면 파일의 위치가 나오는데 그파일을 통해 연결을 하겠다고 명령하자. mysql -u root mysql -S [소켓파일 경로 입력] 그러면 mysql에 소켓 파일을 통해 접속할 수 있다. 그러나 이것도 해결이 일시적이다..... 자동으로 createPool을 통해 js파일에서 연결하려고 시도하면 또다시 소켓연결이 되지 않는다. const mysql2 = require("mysql2"); const pool = mysql2.createPool({ host: "localhost", user: "root", database: "tomato-backend", }); module.exports = pool.promise();..