추후에 다시 정리할 글...입미다
개발 환경에서 도커 배포를 위한 실습 중 dockerfile을 세팅하고 docker build ./
옵션으로 빌드를 하고자 했는데 다음과 같은 에러를 마주쳤다.
위와 같은 에러는 dockerfile을 못찾을 때 나오는 에러이다.
현재 폴더에는 dockerfile.dev
라는 이름의 개발 환경 도커 파일이 있다.
(개발 환경 도커파일 생성시 관용적으로 .dev
라는 이름을 붙여준다고 한다.)
그러므로, 임의로 이름을 명시해서 build를 해줘야한다.
명령어는 다음과 같다.
docker build -f dockerfile.dev .
-f
옵션은 이미지를 빌드할 때 쓰일 도커 파일을 임의로 지정해준다.
되긴 된다.
react-app을 소스로 하는 docker 환경 배포 테스트 중 docker volume 옵션을 주려고 하는데 안된다.
찾아봤더니 윈도우 환경에서는 package.json의 scripts에서 start를 아래와 같이 변경해야지 돌아간다고 한다.
"scripts": {
"start": "WATCHPACK_POLLING=true react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
package.json 내용을 수정하고 다시 빌드하자... 도르마무
?
해결법은 맥북으로 바꾸는 것.
원인을 찾았다.
docker run -it -p 3000:3000 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app ...
???
${pwd}
로 입력해주어야 한다.
만만세!
docker run -it -p 3000:3000 -v /usr/src/app/node_modules -v ${pwd}:/usr/src/app ...
실행하기 위한 명령어가 기괴하다.
docker-compose를 이용하기 위해 yml 파일을 만들어주자.
version: "3"
services:
react:
build:
context: .
# context : 도커 이미지를 구성하기 위한 파일과 폴더들이 있는 위치
dockerfile: Dockerfile.dev
ports:
- "3000:3000"
volumes:
- /usr/src/app/node_modules
- ./:/usr/src/app
stdin_open: true
# stdin_open: 리액트 한정, 리액트 앱을 끌때 필요
and then, docker-compose up
를 입력하고 localhost:3000으로 접속해보자.
volume도 적용이 잘 된다. 만만만세!