스프링과 리액트 이미지는 각각 만들었다는 가정아래
(참고)
#스프링의 Dockerfile
FROM openjdk:8-jre
COPY target/avalon-*.jar app.jar
ENTRYPOINT ["java", "-jar","app.jar"]
#리액트의 Dockerfile
FROM node:10
WORKDIR "/app"
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "start"]
이미지를 만든이후 아래의 명령어를 실행할것
# mysql 설치
docker pull mysql:5 # 5태그로 5버전을 사용했다
# 네트워크 생성
docker network create <네트워크이름>
# 네트워크에서 mysql 실행
docker run -d -p <로컬포트>:<네트워크포트> -e MYSQL_ROOT_PASSWORD=<DB비밀번호> --name <DB이름> -d --network <네트워크이름> mysql:5
# git bash에서 네트워크에 있는 mysql 실행 <-이과정 이후에 mysql -u root -p 로들어가서 스키마,테이블 생성할것
winpty docker exec -it <DB이름> bash
# git bash 에서 스프링 프로잭트 실행
winpty docker run -it --name <백앤드네임> --network <네트워크네임> -p 8080:8080 <백이미지>:<태크>
# git bash에서 리액트 실행
winpty docker run -it --name <프론트네임> --network <네트웤네임> -p 3000:3000 <프론트이미지>:<태그>
중요: 리액트,스프링,mysql의 도커 네트워크 안에서의 연동을 위해 proxy,url을 바꿔야함
참고로 저기서 back을 스프링을 실행할때 정했던 컨테이너 이름이다.
스프링도 마찬가지로 localhost가 아닌 Mysql을 실행할때 만든 컨테이너 이름이 들어간다.
'project' 카테고리의 다른 글
Spring Boot + Mybatis (0) | 2021.05.19 |
---|---|
Spring Boot+Jsp+Hello World 까지 (0) | 2019.09.17 |