Search

#011

docker-study
codingspecialist

DockerCompose

여러가지 이미지를 띄울수 있다.

MySQL을 dockerfile로 브로비저닝 하는 법

리눅스 구조에서 최상단 루트 프로젝트에, docker-entrypoint-initdb.d 디렉토리가 있다는 뜻
이건 자바를 위한 스크립트
리눅스는 /rn이 개행문자이다. 윈도우는 /n 이다.
sed awk sed : 치환의 역할 awk :
plain jar파일을 안생기게 하는 설정인데, 이 설정을 안하면 jar파일이 두개가 생기게 되고, 두개가 생기면 jar를 구분을 못해서 실행이 안된다.
docker-compose는 로컬에서 연습할 때만 쓸수 있는거 그리고
사설 네트워크를 같은 네트워크로 묶을 수 있다.
db를 depends on 이라는 설정으로 db를 항상 의존해서 실행한다.
도커 컴포즈 내부에 environment로 변수로 땡겨야 된다.
hibernate가 none이니까 테이블 생성 스크립트를 넣어야 될것이다.
리액트를 가지고 실행파일로 구워낸다.
npm run build
Java
복사
npm install을 하게되면 package.json이 있으면 알아서 다운로드 해서 node_modules를 만든다.
npm build 를하게 되면 이렇게 build 폴더가 생기게 되고, 얘가 배포가 되면 된다.
실행파일 index.html 이걸 nginx나 apache에 올리면 돌아간다.
여기서 build폴더가 생기면 그 폴더만 배포하기 때문에
이렇게 /app/build 폴더를 명시 해준다.
1.
Java
복사

구조 이해

이런 구조가 있다고 가정하자.
외부에서 접근이 가능할려면 vpc가 퍼블릭이 되어야 한다.
서브넷 마스크를 255.255.255.0 으로 하면 172.0.1 까지는 host로 잡을 수 있고, 변경가능한 주소는 0~255 까지 된다.
1번은 못쓴다. 게이트 웨이 254, 255도 못씀
vpc에서 ec2 만들고 nginx를 만든다.
여기에 리액트로 빌드한 파일을 nginx html 폴더 내부에 넣어야 된다.
포트 80을 열어서 nginx 설치 → git 설치 → git clone
nodejs 설치 → npm install → npm build → cp 해서 html로 build파일들을 옮겨야 된다. 하지만 이건 미친짓, 서버에 쓸데없는거 다 깔아야 되니까!!
이걸 cicd로 하면 엄청 편하다.
5:80으로 서버 포트를 열고 RDS를 만든다.
그다음 spring todtjd 외부에서 7:8080접속하면 CORS걸린다. 그래서 5:80으로 때려서 프록시패스가 되어야 된다.
backend:8080에 작성되어있는 키워드는 dockerfile에 명시되어 있는 키워드이고, nginx서버가 가져와서 쓸수 있다.
이건 nginx 서버 설정 이게 고객이 요청하는 주소인거지
/를 넣으면 html 폴더를 찾아서 index.html을 찾게된다.
nginx에서 프록시 패스가 되면, 헤더를 덮어씌우는 과정 나 nginx 아니다.
/api/ 주소를 받으면 어떻게 하지? 하는 설정인데, 여기서 proxy_pass로 설정하면 요청 주소를 바꾸게 된다.
/api/ 를 다시 재설정하는 문법 아래 스프링에 api/ 같은 주소가 붙어있지 않다면은
웹서버에서 그냥 받는 주소 그리고 패싱하는 주소를 설정하는 것이 좋다. / /api
1. D:/react-test 폴더 만들고 2. webapp 폴더 안에 frontapp 폴더 (리액트) -> 잘라내기 -> react-test 폴더에 붙여넣기 3. blog(스프링) -> react-test 폴더에 붙여넣기 4. my-app -> nginx 폴더 frontapp에 붙여넣기 5. my-app -> Dockerfile -> frontapp에 붙여넣기 6. product -> Dockerfile -> blog에 붙여넣기 7. react-test 폴더에 docker-compose.yml 붙여넣기 8. docker-compose db 서비스 삭제 -> context 폴더명 수정 -> depends_on 삭제 -> environment 삭제 -> frontapp 변경 8. jar { enabled = false } 가 있어야 된다.
Java
복사
녹화_2024_07_16_09_15_20_491.mp4
319216.1KB